Home >Backend Development >PHP Tutorial >类的静态方法在继承中的使用,不大明白,self和this如何转换
类的静态方法在继承中的使用,不大明白,self和this怎么转换?
<?php<br />class A //核心<br />{<br /> public $db;<br /> public function __construct(){<br /> $this->db=new B(); <br /> }<br /> public function find(){<br /> return $this->db->b1(); <br /> }<br />}<br />class B //数据库<br />{<br /> public function b1(){<br /> return true;<br /> }<br /> public function b2(){<br /> return false;<br /> }<br />}<br />//**********分隔符***********<br />class C extends A //第三方类<br />{<br /> static function test(){<br /> return self::find(); <br /> }<br />}<br />//当前文件<br />if(C::test()){<br /> echo 'OK'; <br />}<br />?>
class A //核心<br />{<br /> private static $_Instance;<br /> public $db;<br /> public function __construct(){<br /> $this->db=new B(); <br /> }<br /> public function find(){<br /> if(empty(self::$_Instance)) self::$_Instance = new self();<br /> return self::$_Instance->db->b1(); <br /> }<br />}<br />class B //数据库<br />{<br /> public function b1(){<br /> return true;<br /> }<br /> public function b2(){<br /> return false;<br /> }<br />}<br />//**********分隔符***********<br />class C extends A //第三方类<br />{<br /> static function test(){<br /> return self::find(); <br /> }<br />}<br /><br />error_reporting(E_ALL ^ E_STRICT);<br /><br />//当前文件<br />if(C::test()){<br /> echo 'OK'; <br />}OK