类常量
<?phpclass Person{//在类里面不仅可以定义成员属性和成员方法还可以定义常量,通过const关键字const ABC=1000;public $name;public $age;//定义了常量之后怎么使用呢?//在类的外部使用常量 类名::常量名 (或者$obj::常量名)//在类的内部使用常量 self::常量名 (或者$this::常量名) self:就是当前类名function test(){echo self::ABC;}}//在类的外部可以通过: 类名::常量名 (或者$obj::常量名)echo Person::ABC;//1000$niu=new Person();$niu->test();//1000//在类的内部定义常量用const,外部定义常量用define,虽然const也可以在外部定义,但是我们一般不这么用//常量前面不能加修饰符比如public
静态属性和方法


静态属性和静态方法对应的是对象的属性和对象方法
对象属性和对象方法都是属于某个对象的,而静态属性和静态方法不是属于某一对象的,它是属于整个类的。
静态属性和静态方法为什么效率高?
因为不用创建对象,直接通过类名就可以直接访问
静态方法中不能出现$this关键字原因:
因为静态方法是属于整个类的,不是属于某个对象的,那么我们的$this表示当前对象
<?phpclass Person{public static $name='小芳'; //静态属性,属于整个类,不属于某个特定对象public static function test() //静态方法 (static和public位置可以互换){echo '这是静态方法';}public function demo() {echo self::$name;self::test();}}$niu=new Person();$niu->demo();echo Person::$name;//这里要$(通过对象访问自己成员属性的时候没有$,访问静态属性的时候要$)Person::test();/*静态属性调用方法:类外类名::静态属性名(或者$obj::静态属性名)类内self::静态属性名(或者$this::静态属性名)静态方法调用方法:类外类名::静态方法名(或者$obj::静态方法名 $obj->静态方法名)类内self::静态方法名(或者$this::静态方法名 $this->静态方法名)*/
