Скрытый трюк PHP или поддерживаемая функция? - PullRequest
0 голосов
/ 05 августа 2010

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

echo 'hello' . ' world'; // hello world

Но, кстати, я набрал:любые ошибки.

Почему это так?Можем ли мы также объединить запятыми?

Ответы [ 6 ]

11 голосов
/ 05 августа 2010

Это задокументировано в записи для echo:

void echo (строка $ arg1 [, строка $ ...])

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

3 голосов
/ 05 августа 2010

Нет, вы не можете объединить запятыми:

<?php

$foo = 'One', 'Two';

?>

Ошибка разбора: синтаксическая ошибка, неожиданная ''

1 голос
/ 05 августа 2010

echo - языковая конструкция. В некотором смысле это специальная функция, которая определена на уровне грамматики (я могу ошибаться в этом). Это функция, которая каким-то образом не следует ни одному из определенных способов определения функции / метода в качестве примера и способа их вызова. Это «обходит» некоторую проверку синтаксиса:)

В StackOverflow есть хороший пост, в котором обсуждается разница между языковой конструкцией и встроенными функциями .

1 голос
/ 05 августа 2010

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

1 голос
/ 05 августа 2010

echo является языковой конструкцией, поэтому вам не нужны скобки.Но вы «передаете» несколько параметров в echo.Думайте об этом как:

echo('hello', ' world');

0 голосов
/ 05 августа 2010
echo('hello', ' world');

Это так же, как:

echo 'hello', ' world';
...