[讨论] PHP7后静态呼叫时建立实体的方法

楼主: JYHuang (夏天到了,冷不起来了说)   2020-06-12 08:57:08
以前的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');
又是怎样做到的呢?
作者: zx4109 (阿仲)   2020-06-12 09:27:00
https://learnku.com/articles/6146 可以参考这篇看看
作者: Nitricacid (硝酸酸)   2020-06-13 01:43:00
callStatic
作者: KKFN (John)   2020-06-14 11:13:00
return new self(...$args);原来大家在静态回传的时候是用$this吗 O~O!?
作者: kroutony (bingbing)   2020-06-14 19:58:00
原理还是帮你new一个instance出来

Links booklink

Contact Us: admin [ a t ] ucptt.com