Подтвердить что ты не робот

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

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

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

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

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

sub myprint(@) { ... }

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

4b9b3361

Ответ 1

print не является переменными функциями

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

И:

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

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

Ответ 2

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

-Adam

Ответ 3

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

Ответ 4

Я искал способ закодировать 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.

Ответ 5

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