目录

PHP之特性

PHP之特性

在你有别的编程语言的基础下,你想学习PHP,可能要了解的PHP特有的东西。

使用«name = $name; $this->age = self::$sex;//静态属性不能用$this调用 需要用self:: echo “创建对象” . PHP_EOL; } static function tt() { echo “静态方法” . PHP_EOL; //在静态方法中调用非静态的方法 echo (new self)->name; } public function __destruct() { // TODO: Implement __destruct() method. echo “销毁对象” . PHP_EOL; } } $AA = new AA(“zhangsan”); $AA->name = “lisi”; AA::$sex = “man”;//静态属性用类名调用 AA::tt(); echo $AA->name . AA::$sex . PHP_EOL;

用static进行延迟绑定可以调用的对象决定到底使用哪个值 class A { protected static $name = “123”; public function eat() { echo self::$name . PHP_EOL;//指定为当前类中的属性 echo static::$name . PHP_EOL;//根据调用的对象来决定调用哪个类中的属性 } } class B extends A { protected static $name = “456”; } //(new A())->eat(); (new B())->eat();

接口里的权限只能是public

抽象方法权限可以使用public,protected,可以包含非抽象方法的实现和抽象方法的声明,可以有构造方法

解决单一继承,可以使用多个trait,用逗号隔开。里面不能有类常量,不能被实例化。 可以使用抽象方法 可以使用静态属性和静态方法 可以使用parent和其他trait 多个trait使用不可以有相同的key不同value trait A { public function T() { echo “A” . PHP_EOL; } } trait B { public function T() { echo “B” . PHP_EOL; } } class C { use A, B { A::T insteadof B;//使用A中的T方法替换B中的T方法 B::T as T1;//使用B中的T方法并起别名T1 B::T as private T2;//as改别名时也可以改权限 } public function d() { echo $this->T2(); } } $c = new C(); $c->T(); $c->T1(); $c->d();

中断进程,并输出当前要输出的值 half(要输出的内容)