У меня есть функция, которая эффективно заменяет печать, и я хочу назвать ее без круглых скобок, так же, как вызов 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 не позволит вам это сделать.