Warning:
In PHP 7, calling non-static methods statically is deprecated, and will generate an E_DEPRECATED warning.
Support for calling non-static methods statically may be removed in the future.
I run in PHP 7 this:
public static function loadStandards() {
return true;
}
Or this:
static public function loadStandards() {
return true;
}
And is working fine no E_DEPRECATED warning from PHP.
So.. Is deprecated? or not?
namespace App\Http\Controllers\Tools;
use App\Http\Controllers\Central;
class ShopTool extends Central
{
public static $loaded = [];
public static function loadStandards()
{
return true;
}
}
Static functions are just fine, not deprecated at all.
class foo {
public static function myStaticFunction() {
echo "I'm declared static! Calling me statically works great.";
}
}
You can call foo::myStaticFunction()
and it'll work just fine.
It used to be that you could call a non-static function statically. This is what PHP is deprecating.
For example:
class foo {
public function myNonStaticFunction() {
echo "I'm not declared static, if you try to call me statically you'll get a deprecated warning";
}
}
Now if you try to call foo::myNonStaticFunction()
as if it were static, PHP will give you a deprecated warning.
See here for a working example: https://3v4l.org/lXYsf