приоритет выполнения функций и переменных

Я попытался напечатать простую переменную, объединенную с вызовом функции, и вот что я получил!

 <?php
$hello = "Hello ";
function test(){
echo "This is a function!! ";
}
echo $hello.test();
?>

Здесь echo печатает переменную hello, конкатенированную при вызове функции, так что должен сделать вывод Hello This is a function!!вместо вывода This is a function!! Hello,

  • Как это работает и кто-то может объяснить это поведение?

3

Решение

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

return «Это функция !!»;

.. будет работать с вашим исходным форматом точка-точка (как уже отмечали другие).

В качестве альтернативы, изменив линию эха на:

echo $ hello, test ();

.. тоже работает.
$ hello является строкой и получает эхо, ~ затем ~ test () оценивается.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]