【发布时间】:2014-10-07 04:28:17
【问题描述】:
您好,我正在使用 forward_static_call_array() 函数,我有一个示例。
<?php
class A
{
const NAME = 'A';
public static function test() {
$args = func_get_args();
echo static::NAME, " ".join(',', $args)."<br/>";
}
}
class B extends A
{
const NAME = 'B';
public static function test() {
echo self::NAME, "<br/>";
forward_static_call_array(array('A', 'test'), array('more', 'args'));
forward_static_call_array( 'test', array('other', 'args'));
}
}
B::test("bar");
function test() {
$args = func_get_args();
echo "C ".join(',', $args)."<br/>";
}
?>
这里的结果是
B
B more,args
C other,args
但是当我查看代码时,我看到它正在调用 B::test("bar"); 其他 2 个 test() 函数有 func_get_args()。但是B::test 也没有。所以我认为它应该弹出一个错误。但它工作正常。
怎么样?
- 所以当我们在函数中使用
forward_static_call_array()时,函数中不需要有参数?
或
- 可以使用参数调用不带任何参数的 PHP 静态函数?
请解释一下。非常感谢。
【问题讨论】:
标签: php function static static-methods