static - 在 php 中,我们可以使用类对象访问静态成员函数。有人可以告诉我这个功能的实际用途吗

标签 static php-5.3

在 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/

相关文章:

c - 如何将特定大小的二维数组从动态更改为静态?

c++ - 如何在命名空间中使用变量

java - 使用非静态公共(public)最终变量公开实例常量

php - 简单的 try/finally 与 try/catch

php - 返回一个带有可变参数列表的方法作为 PHP 中的引用

php - 对mysql数据进行计数和分组

c++ - 将一个类的static const数据成员初始化为一个类

c++ - .cpp 文件头部的静态语句未调用

php - Windows 服务器上的 OCI8 php 扩展安装

php - 2 个 php.ini 文件