代码之家  ›  专栏  ›  技术社区  ›  Andy Lester

我可以创建一个无需括号即可调用的PHP函数吗?

  •  29
  • Andy Lester  · 技术社区  · 16 年前

    我有一个函数,它实际上是print的替代品,我想不带括号地调用它,就像调用print一样。

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

    在Perl中,可以使用参数模板创建子例程,如果将子例程定义为

    sub myprint(@) { ... }
    

    6 回复  |  直到 11 年前
        1
  •  22
  •   Patrick Desjardins    16 年前

    印刷品不是一种艺术 variable functions

    使用变量函数调用

    以及:

    PHP支持变量的概念 功能。这意味着如果 变量名附加了括号 对于它,PHP将寻找一个函数 和其他名字一样 变量的计算结果为,并将 尝试执行它。除其他外 回调、函数表等 向前地

        2
  •  11
  •   Adam Davis    16 年前

    -亚当

        3
  •  9
  •   Greg    16 年前

    打印实际上不是一种功能,它是一种“语言结构”。

        4
  •  2
  •   Steve Gattuso Derick Bailey    16 年前

    不,PHP不允许您这样做。

        5
  •  2
  •   Marcelo    13 年前

    我正在寻找一种方法来编写echoh代码,以执行以下操作:

    echoh "hello";
    

    并获得:

    'hello<br>\n'.
    

    我想一个解决方案可能是定义一个常数并使用它:

    <?php
    const PHP_BR_EOL = "<br>\n";
    echo "Hello" . PHP_BR_EOL;
    ?>
    

    现在我得到:

    Hello<br>
    

    我知道它需要更多的输入,但它更符合PHP手册上的示例,我使用gvim和omnicomplete来保存输入。此外,用PHP\u BR\u EOL进行全局搜索/替换PHP\u EOL也很容易。

        6
  •  0
  •   Joshua    6 年前

    这不能与PHP一起使用。必须使用括号调用您声明的函数