我可以创建一个我可以在没有括号的情况下调用的PHP函数吗?

And*_*ter 29 php function

我有一个有效替代打印的功能,我想在没有括号的情况下调用它,就像调用print一样.

# Replace
print $foo, $bar, "\n";

# with
myprint $foo, $bar, "\n";
Run Code Online (Sandbox Code Playgroud)

在Perl中,您可以使用参数模板创建子例程,如果将子例程定义为,则允许此行为

sub myprint(@) { ... }
Run Code Online (Sandbox Code Playgroud)

PHP中有类似的东西吗?

Pat*_*ins 22

print不是变量函数

因为这是一种语言结构而不是函数,所以不能使用变量函数调用它

而且:

可变功能

PHP支持变量函数的概念.这意味着如果变量名称附加了括号,PHP将查找与变量求值的名称相同的函数,并尝试执行它.除此之外,这可以用于实现回调,函数表等.


Ada*_*vis 11

只有编辑PHP代码库并添加新的语言结构.

-亚当


Gre*_*reg 9

不,你不能用PHP做到这一点.打印实际上不是一个功能,它是一种"语言结构".