Конкатенация и оператор «,»

221
28 июня 2017, 00:55

Я заметил, что делать конкатенацию можно как и точкой, так и запятой. Но в чем разница между этими двумя операторами?

Answer 1

Никакой конкатенации через запятую в php нет. То, что вы приняли за оную по ссылке php.net/manual/ru/function.echo.php на русскоязычную документацию, на самом деле результат трудностей перевода. Во-первых, обратите внимание, как показан пример использования данной функции:

void echo ( string $arg1 [, string $... ] )

Тут ясно видно, что запятая выступает в роли разделителя аргументов.

Во-вторых, ниже в оригинале написано вот что:

echo is not actually a function (it is a language construct), so you are not required to use parentheses with it. echo (unlike some other language constructs) does not behave like a function, so it cannot always be used in the context of a function. Additionally, if you want to pass more than one parameter to echo, the parameters must not be enclosed within parentheses.

А в переводе вот что:

На самом деле echo - это не функция, а конструкция языка, поэтому заключать аргументы в скобки необязательно. echo (в отличие от других языковых конструкций) не ведет себя как функция, поэтому не всегда может быть использована в контексте функции. Вдобавок, если вы хотите передать более одного аргумента в echo, эти аргументы нельзя заключать в скобки.

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

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

echo "test " . true . 1;
echo "test " , true , 1;
READ ALSO
Не работает ini_set()

Не работает ini_set()

В чем вообще дело? И так не только с sessionauto_start, но и с другими session

325
Не создается cookie на yii2

Не создается cookie на yii2

Создаю cookie на yii2

207
php replace in url path

php replace in url path

Здравствуйте, как заменить параметры в url path? Есть адрес:

203