Могу ли я создать функцию PHP, которую я могу вызвать без круглых скобок?

У меня есть функция, которая эффективно заменяет печать, и я хочу назвать ее без круглых скобок, так же, как вызов print.

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

В Perl вы можете создавать подпрограммы с шаблонами параметров, и это позволяет именно такое поведение, если вы определяете подпрограмму как

 sub myprint(@) { ... } 

Что-нибудь подобное в PHP?

print – не переменная функция

Поскольку это языковая конструкция, а не функция, ее нельзя вызывать с помощью переменных функций

А также :

Переменные функции

PHP поддерживает концепцию переменных функций. Это означает, что если к имени переменной добавлены скобки, PHP будет искать функцию с тем же именем, что и переменная, которая будет оцениваться, и попытается ее выполнить. Среди прочего, это можно использовать для реализации обратных вызовов, таблиц функций и т. Д.

Только путем редактирования PHP-кода и добавления новой языковой конструкции.

-Адам

Нет, вы не можете сделать это на PHP. Печать на самом деле не функция, это «языковая конструкция».

Я искал способ закодировать echoh, чтобы сделать что-то вроде:

 echoh "hello"; 

и получить:

 'hello<br>\n'. 

Я думаю, что одно решение может определять константу и использовать ее:

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

Теперь я получаю:

 Hello<br> 

Я знаю, что это требует большего набора текста, но оно более удовлетворительно с примерами в руководстве по PHP, и я использую gvim с omnicomplete для сохранения при наборе текста. Также было бы легко сделать глобальный поиск / заменить PHP_EOL на PHP_BR_EOL.

Нет, PHP не позволит вам это сделать.