看板 PHP 關於我們 聯絡資訊
以前的PHP還可以在靜態method裡使用$this,不過新版的改掉了 所以前那種 $foo = foo::bar() 等同 $foor = new foor , $foo->bar(); 的寫法在PHP7已經不可行了 class foo{ public function __construct(){ } public static function bar(){ if(!isset($this)){ $foo = new foo; return $foo->bar(); } // return blablabla.. } } 不過看laravel卻可以讓method同時被靜態呼叫又被實體呼叫 $DB = DB::table('name'); $DB = new db ; $DB->table('name'); 又是怎樣做到的呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.66.226.169 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1591923430.A.E02.html
zx4109: https://learnku.com/articles/6146 可以參考這篇看看 06/12 09:27
Nitricacid: callStatic 06/13 01:43
KKFN: return new self(...$args); 06/14 11:13
KKFN: 原來大家在靜態回傳的時候是用$this嗎 O~O!? 06/14 11:13
kroutony: 原理還是幫你new一個instance出來 06/14 19:58