警告:
在PHP 7中,不推荐静态调用非静态方法,并将生成E_DEPRECATED警告。
将来可能会删除对静态调用非静态方法的支持。
我在PHP 7中运行:
public static function loadStandards() {
return true;
}
或者这个:
static public function loadStandards() {
return true;
}
并且工作正常,没有来自PHP的 E_DEPRECATED 警告。
那么..是否已被弃用?不是吗?
namespace App\Http\Controllers\Tools;
use App\Http\Controllers\Central;
class ShopTool extends Central
{
public static $loaded = [];
public static function loadStandards()
{
return true;
}
}
答案 0 :(得分:5)
静态函数很好,根本没有弃用。
class foo {
public static function myStaticFunction() {
echo "I'm declared static! Calling me statically works great.";
}
}
你可以致电foo::myStaticFunction()
,它会正常工作。
过去你可以静态调用非静态函数。这就是PHP弃用的内容。
例如:
class foo {
public function myNonStaticFunction() {
echo "I'm not declared static, if you try to call me statically you'll get a deprecated warning";
}
}
现在,如果您尝试将foo::myNonStaticFunction()
称为静态,那么PHP会给您一个弃用的警告。
请参阅此处查看工作示例:https://3v4l.org/lXYsf