在 php 中,我们可以使用类对象调用静态成员函数。例如
class Human
{
public static function Speak()
{
echo "I am a human.";
}
}
$human = new Human();
$human->Speak();
我们期望的是静态成员函数只能使用类名调用,而不能使用类实例变量(对象)调用。但我在编程时看到的是,php 也允许使用类对象调用静态成员函数。 php 提供这个功能有什么实际用途或者什么重要原因吗?
Java 和 C++ 中也存在此功能。感谢 Oli 在回复中指出这一点。
最佳答案
这与其他 OO 语言相同,例如 C++ 和 Java。为什么您希望解释器阻止这种情况?
更新
我对此的最佳猜测(这只是一个猜测)是“为了方便”。从本质上讲,为什么类的用户必须关心给定的成员函数是否是静态的?在某些情况下,这肯定很重要;在其他方面,也许不是。我并不是说这是一个很好的理由,但这就是我能想到的全部!
关于static - 在 php 中,我们可以使用类对象访问静态成员函数。有人可以告诉我这个功能的实际用途吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4173987/