Posso criar uma function PHP que posso chamar sem parênteses?

Eu tenho uma function que efetivamente é uma substituição para a impressão, e eu quero chamá-la sem parênteses, como chamar a impressão.

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

No Perl, você pode criar sub-rotinas com modelos de parâmetros e permite exatamente esse comportamento se você definir uma sub-rotina como

 sub myprint(@) { ... } 

Alguma coisa semelhante em PHP?

imprimir não é uma function variável

Como esta é uma construção de linguagem e não uma function, ela não pode ser chamada usando funções variables

E:

Funções variables

O PHP oferece suporte ao conceito de funções variables. Isso significa que, se um nome de variável tiver parênteses anexados a ele, o PHP procurará uma function com o mesmo nome como seja o que a variável avalie, e tentará executá-la. Entre outras coisas, isso pode ser usado para implementar callbacks, tabelas de funções e assim por diante.

Somente editando a base de código do PHP e adicionando uma nova construção de idioma.

-Adão

Não, você não pode fazer isso em PHP. A impressão não é realmente uma function, é uma “construção de idioma”.

Eu estava procurando uma maneira de codificar um echoh para fazer algo como:

 echoh "hello"; 

e pegue:

 'hello
\n'.

Eu acho que uma solução poderia definir uma constante e usá-la:

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

Agora eu recebo:

 Hello

Eu sei que exige mais digitação, mas é mais complacente com os exemplos no manual do PHP, e uso gvim com omnicomplete para salvar na digitação. Também seria fácil fazer uma pesquisa / substituição global PHP_EOL por PHP_BR_EOL.

Nope, o PHP não permitirá que você faça isso.