我的代碼這樣的:__callStatic不會調用,如果存在一個非靜態函數
<?php
class A {
public function CallA()
{
echo "callA" . PHP_EOL;
}
public static function CallB()
{
echo "callB" . PHP_EOL;
}
public static function __callStatic($method, $args)
{
echo "callStatic {$method}";
}
}
A::CallA();
但它會響應:
Strict Standards: Non-static method A::CallA() should not be called statically in /vagrant/hades_install/public/test.php on line 21
callA
也就是說,CallA
不運行的功能__callStatic
我該怎麼辦,如果我想__callStatic
被稱爲A::CallA()
如果*可以*變成受保護的或私有的'CallA'然後你會看到__callStatic()如預期''火之前'CallA'公衆訪問,但這意味着如果沒有'__callStatic()','CallA'就不能被調用......這個難題! –
PHP中方法的'static'關鍵字或多或少只是建議性的。它根本不影響通話行爲。 – deceze