ホームページ >バックエンド開発 >PHPチュートリアル >継承におけるクラスの静的メソッドの使用、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