在这种情况下,没有区别。
但是,static
函数的意义在于,某些函数不需要类的实例即可执行。即使函数未标记为静态,也可以静态调用函数,但这样做在技术上是不正确的。如果你已经error_reporting(E_ALL)
设置,它会给你一个严格的标准错误。
这不是因为代码不起作用,而是因为它可能不起作用。
class TestClass {
private $name = 'Rakesh';
public function doSomething() {
echo "Hi there";
}
public function doSomethingElse() {
echo "Hi there " . $this->name;
}
}
您可以静态调用第一个函数,它会正常工作。但是如果你doSomethingElse
静态调用,它就不起作用,因为它会尝试访问$this
,这只有在你有一个对象的情况下才有可能。
所以我们应用static
关键字来doSomething
让 (a) PHP 和 (b) 使用该类的程序员知道可以静态调用它。这是一个承诺,它将起作用。
假设应该是,如果它未标记为static
,则不应静态调用它。
PHP 的严格标准错误旨在使您的代码更好,即使它已经可以工作。常量的E_STRICT
文档说:
启用让 PHP 建议对您的代码进行更改,这将确保您的代码的最佳互操作性和前向兼容性。