【发布时间】:2020-08-02 13:34:08
【问题描述】:
因为我知道可以调用存储为字符串的类的成员函数。但我想知道是否有任何方法可以对 PHP 中的静态成员函数做同样的事情。 例如:
class A
{
public static function run(){
echo "OK";
}
}
"A"::"run"()
类似于上面的例子。 请帮帮我。提前致谢。
【问题讨论】:
因为我知道可以调用存储为字符串的类的成员函数。但我想知道是否有任何方法可以对 PHP 中的静态成员函数做同样的事情。 例如:
class A
{
public static function run(){
echo "OK";
}
}
"A"::"run"()
类似于上面的例子。 请帮帮我。提前致谢。
【问题讨论】:
为了解决我在开发用户友好的 PHP 框架时遇到的这类问题,将类名和静态方法名作为字符串存储在一些 PHP 变量中。
$className = "A";
$methodName = "run";
然后这样称呼它:
$className::$methodName();
或者第二种方式
$func = "A::run";
$func(); //or
"A::run"();
这就是调用存储为字符串的类的静态方法的方式。 这其中一种方式,更多可以在https://www.designcise.com/web/tutorial/how-to-dynamically-invoke-a-class-method-in-php
【讨论】:
你可以像这样调用类作为字符串
<?php
class A
{
public static function run()
{
echo "OK";
}
}
$stringClass = "A";
$staticMethod = "run";
$stringClass::$staticMethod();
【讨论】: