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