我有一个有效替代打印的功能,我想在没有括号的情况下调用它,就像调用print一样。
# Replace
print $foo, $bar, "\n";
# with
myprint $foo, $bar, "\n";
在Perl中,您可以使用参数模板创建子例程,如果将子例程定义为
,它可以准确地显示此行为sub myprint(@) { ... }
PHP中有类似的东西吗?
答案 0 :(得分:22)
因为这是一种语言结构 而不是一个功能,它不可能 使用变量函数调用
并且:
变量函数
PHP支持变量的概念 功能。这意味着,如果一个 变量名称附加了括号 对它来说,PHP会寻找一个功能 与任何相同的名称 变量评估为和将 试图执行它。除其他外 事情,这可以用来实现 回调,函数表等 类推。
答案 1 :(得分:11)
仅通过编辑PHP代码库并添加新的语言构造。
- 亚当
答案 2 :(得分:9)
不,你不能用PHP做到这一点。 打印实际上不是一个功能,它是一种“语言结构”。
答案 3 :(得分:2)
不,PHP不允许你这样做。
答案 4 :(得分:2)
我一直在寻找一种方法来编写一个echoh来做类似的事情:
echoh "hello";
并获得:
'hello<br>\n'.
我想一个解决方案可能是定义一个常量并使用它:
<?php
const PHP_BR_EOL = "<br>\n";
echo "Hello" . PHP_BR_EOL;
?>
现在我明白了:
Hello<br>
我知道它需要更多的输入,但它更适合PHP手册中的示例,并且我使用带有omnicomplete的gvim来节省输入。此外,通过PHP_BR_EOL进行全局搜索/替换PHP_EOL也很容易。
答案 5 :(得分:0)
用PHP不能用餐。声明的函数必须用方括号
调用