Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel如何静态地动态调用类方法,而不隐式地使用PHP中方法的static关键字?_Php_Static Methods_Facade - Fatal编程技术网

Laravel如何静态地动态调用类方法,而不隐式地使用PHP中方法的static关键字?

Laravel如何静态地动态调用类方法,而不隐式地使用PHP中方法的static关键字?,php,static-methods,facade,Php,Static Methods,Facade,Laravel使使用作用域解析运算符(::)调用类方法成为可能,而无需静态声明该方法 在PHP中,只有当静态方法声明为静态方法时,才能调用它们,例如: class User { public static function getAge() { ... } } 可以称为User::getAge() 如何在普通的PHP类中实现这一点。我想这可能需要使用设计模式或其他方式来完成。有人能帮我吗 所以我上面所说的意思是,可以实例化一个类并在php中静态调用它的方法。因为该功能是从以前的版本

Laravel使使用作用域解析运算符(::)调用类方法成为可能,而无需静态声明该方法

在PHP中,只有当静态方法声明为静态方法时,才能调用它们,例如:

class User {

   public static function getAge() { ... } 

}
可以称为
User::getAge()

如何在普通的PHP类中实现这一点。我想这可能需要使用设计模式或其他方式来完成。有人能帮我吗

所以我上面所说的意思是,可以实例化一个类并在php中静态调用它的方法。因为该功能是从以前的版本中删除的

class Student {

     public function examScore($mark_one, $mark_two) {
         //some code here
     }

}
如何以这种方式访问它

$student = new Student;
$student::examScore(20, 40);
我谈到了Laravel,因为它允许您为类别名,并以这种方式调用它
Student::examcore(20,40)

一种叫做门面图案的东西。举例说明会有所帮助

经过长时间的搜索,我在这里找到了一篇文章,对其进行了解释:

https://www.sitepoint.com/how-laravel-facades-work-and-how-to-use-them-elsewhere

我猜您的用户类实际上扩展了Laravel
Model

这个类实现了一些PHP,即所谓的magic方法。你可以在这里找到我们关于它们的信息:

其中之一是
\u callStatic

Model.php
中:

/**
 * Handle dynamic static method calls into the method.
 *
 * @param  string  $method
 * @param  array  $parameters
 * @return mixed
 */
public static function __callStatic($method, $parameters)
{
    return (new static)->$method(...$parameters);
}

我猜您的用户类实际上扩展了Laravel
Model

这个类实现了一些PHP,即所谓的magic方法。你可以在这里找到我们关于它们的信息:

其中之一是
\u callStatic

Model.php
中:

/**
 * Handle dynamic static method calls into the method.
 *
 * @param  string  $method
 * @param  array  $parameters
 * @return mixed
 */
public static function __callStatic($method, $parameters)
{
    return (new static)->$method(...$parameters);
}

您能否在Laravel中提供这样一个方法的示例,以及如何调用它以明确您所指的是什么?示例是如何使用Blade类调用其方法示例Blade::compileString($param)前两个视频也会引起您的兴趣。感谢Delena,这些视频真的很有帮助。您能否在Laravel中提供一个这样一个方法的示例,以及如何调用它以明确您所指的内容?一个示例是如何使用Blade类调用其方法示例Blade::compileString($param)这前两个视频也会让你感兴趣。谢谢德莱娜,这些视频真的很有帮助。不,我没有使用拉威尔模型。我想知道如何在原始PHP中实现它。你能帮我举一个真实世界的小例子吗@a.L.这个答案很有帮助,但我在这里解释了我要找的是:非常感谢,不,我不使用Laravel模型。我想知道如何在原始PHP中实现它。你能帮我举一个真实世界的小例子吗@a.L.这个答案很有帮助,但我想在这里解释一下:非常感谢