Строитель пишет:Мелкий, выходит, что print это тоже конструкция языка? Я вроде бы где-то видел утверждение, что это всё таки функция... Спасибо, приму к сведению.
Доброе утро!
Выходит, что
echo и
print это конструкции языка, а не функции. Спасибо за информацию.
Однако, у меня возник вопрос: “Откуда взялось это заблуждение?”
Посмотрел, на
http://php.net/manual/ru/langref.php
Открываем “
Управляющие конструкции”. Предположим, что это синоним “
конструкции языка”
Здесь
echo и
print не упоминается.
Спойлер (Отобразить)Управляющие конструкции
if
else
elseif/else if
Альтернативный синтаксис управляющих структур
while
do-while
for
foreach
break
continue
switch
declare
return
require
include
require_once
include_once
goto
Смотрим раздел “
Функции” и в нём подраздел “
Функции для работы со строками”
Здесь находим
echo и
print Спойлер (Отобразить)Функции для работы со строками:
addcslashes
addslashes
bin2hex
chop
chr
chunk_split
convert_cyr_string
convert_uudecode
convert_uuencode
count_chars
crc32
crypt
echo
explode
fprintf
get_html_translation_table
hebrev
hebrevc
hex2bin
html_entity_decode
htmlentities
htmlspecialchars_decode
htmlspecialchars
implode
join
lcfirst
levenshtein
localeconv
ltrim
md5_file
md5
metaphone
money_format
nl_langinfo
nl2br
number_format
ord
parse_str
print
..............
..............
По линку из списка “
Функции для работы со строками” смотрим описания
echo и
print и узнаём, что они на самом деле не функции , а конструкции:
Спойлер (Отобразить)void echo ( string $arg1 [, string $... ] )
Выводит все аргументы. Символ конца строки не добавляется.
На самом деле, echo - это не функция (это языковая конструкция),
поэтому заключать аргументы в скобки необязательно.
echo (в отличие от других языковых конструкций) не ведет себя как функция,
поэтому не всегда может быть использована в контексте функции.
Вдобавок, если вы хотите передать более одного аргумента в echo, эти аргументы нельзя заключать в скобки.
int print ( string $arg )
Выводит arg.
print на самом деле не является настоящей функцией (это конструкция языка), поэтому заключать аргументы в скобки необязательно.
Главное отличие от echo в том, что print принимает только один аргумент и всегда возвращает 1.
Посмотрел, что пишут на
https://github[dot]com/dseguy/clearP[dot][dot][dot]age-construct[dot]md
про конструкции языка PHP: “
The language constructs are echo, print, include, include_once, require and require_once.”