作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
在 PHP 5.3.6 中,我注意到以下内容不起作用:
class Foo{
public static $class = 'Bar';
}
class Bar{
public static function sayHello(){
echo 'Hello World';
}
}
Foo::$class::sayHello();
发出意外的 T_PAAMAYIM_NEKUDOTAYIM
。但是,使用临时变量会产生预期的结果:
$class = Foo::$class;
$class::sayHello(); // Hello World
有谁知道这是设计使然,还是范围解析运算符被标记化的意外结果?有没有比后一个临时变量示例更简洁的解决方法?
最佳答案
不幸的是,没有办法在一行中完成。我认为您可以使用 call_user_func() 来完成,但不行:
call_user_func(Foo::$class.'::sayHello()');
// Warning: call_user_func() expects parameter 1 to be a valid callback, class 'Bar' does not have a method 'sayHello()'
此外,您一开始为什么要做这样的事情?我确信一定有更好的方法来完成您想要做的事情 - 如果您使用可变变量或类名,通常会有。
关于php - PHP 中的多个 paamayim nekudotayims,为什么不呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6619465/
在 PHP 5.3.6 中,我注意到以下内容不起作用: class Foo{ public static $class = 'Bar'; } class Bar{ public sta
我是一名优秀的程序员,十分优秀!