PHP 延迟绑定
1 class product{ 2 public static function create(){ 3 return new static(); 4 } 5 } 6 7 class food extends product{ 8 9 } 10 11 var_dump(food::create()); 12 //food::out();
以上代码输出:object(food)#1 (0) { }
class product{ public static function create(){ return new self(); } } class food extends product{ } var_dump(food::create());
以上代码输出:object(product)#1 (0) { }
一个self和static的区别,self是解析上下文,而不是引用上下文。在PHP 5.3中的新特性,延迟绑定,static类似于self,但它指的是被调用的类而不是包含类。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。