_initialize 自定义函数 在基类控制器中调用
public function __construct(Request $request = null) { $this->_initialize(); }
// 初始化 public function _initialize(){ }
2.关于子类继承父类的构造器
$this 指向当前实例化对象 self调用当前类方法 属于静态类 parent调用父类方法 和属性
$this->function()如果子类没有重写父类方法 则调用父类方法,如果子类重写父类方法则会调用子类方法
3 PHP this、self与static的区别
/** * 父类P中 获取子类C的类名 */ class P { public static function getParent() { return self::class; } public static function getChild() { return static::class; } public function getClassName(){ echo __CLASS__; // 获取当前的类名 } public function getThis(){ var_dump($this); } } class C extends P { } echo C::getParent(), PHP_EOL; // P echo C::getChild(), PHP_EOL; // C echo (new C())->getClassName(), PHP_EOL; // P echo (new C())->getThis(), PHP_EOL; // C /* 总结: * 1.在 PHP 里,在没有继承时候,你用self::class 和 static::class是一样的,都是获取当前类名。 * 2.如果用到了继承,并且这个方法写在了父类里,你想要分别获取当前父类名和未知的子类名,就要按照下面的方法进行获取。 * 在 PHP 类中,self指向的是当前方法存在的这个类,也就是父类。static指向的是最终那个子类 * 3.this也有static的效果,只不过区别一个是非静态一个是静态 */