此方法 Class::function($params) 的名称是什么?

What is the name of this method Class::function($params)?

我做了一些研究,但我就是不知道它叫什么。

这是一个例子:

Class Exam {

 public static function test($id)
 {
    return $id;
 }

}

echo Exam::test(1);

我想搜索的是......我不想理解在一行中调用 class 和函数的缩小方法。就像 laravel。顺便说一句,我正在用原生编码。

这是一个经常在堆栈溢出时弹出的问题。

Classname::method(); 只是在 class 中调用静态方法的一种较短的方式。使用 :: 时,您不需要先实例化 class。考虑以下 -

Class Classname{
    static public $var = date("F j, Y");

    static public method(){
        return self::$var;
    }
}

echo Classname::method();

$c = new Classname();
echo $c->method();

两条回显行都将以 F j, Y 格式回显今天的日期。

为什么要使用静态方法?考虑上面的这个例子,你有一个日期格式并且你希望它是一个不可变的值。静态方法是无状态的。所以在这个例子中我们有一个访问静态变量的静态方法。静态属性不能像 $this 这样的对象那样访问 class。但是如果您正在访问其他静态属性,则可以访问 class 本身。 Classname::$varself::$var 有效。

我知道,我有点没有回答你没问的 "why" 部分。我突然意识到我最好的答案是 "I don't know." 我知道静态方法或 属性 是什么,但我真的没有一个铁定的例子来说明你会在哪里具体使用一个 AND 在那个同样的例子解释了为什么你必须使用静态方法,其中 public 一个将是生与死的区别。我欢迎其他有实际经验的人回答 post 什么时候以及为什么要使用静态方法,其中静态部分在公理上是关键的。我知道这不是 OP 的实际问题,但实际上不知道并真正理解静态方法和属性的目的或必要性,将 :: 分解到您的日常代码中有什么意义?