Добрый день!
Дело не в синтаксе $_POST, а в массиве $b, в котором, говорят Undefined index.
Вообщето-то, по синтаксису, следующая ошибка будет в echo. Нужно ставить точку, а не запятую.
Попробуйте, сделать так:
Вообщето-то, по синтаксису, следующая ошибка будет в echo. Нужно ставить точку, а не запятую.
Ошибаетесь, оператор echo допускает и точку, и запятую.
Vladimir Kheifets
Отправлено: 09 Июня, 2018 - 15:52:41
Частый посетитель
Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017 Откуда: Германия, Бавария
Помог: 37 раз(а)
Vladimir Kheifets пишет:
Вообщето-то, по синтаксису, следующая ошибка будет в echo. Нужно ставить точку, а не запятую.
Строитель пишет:
Ошибаетесь, оператор echo допускает и точку, и запятую.
Добрый день!
Согласен. Был, неправ, PHP-интерпретатор пропускает запятую в функции ECHO .
Оказывается, в функции ECHO запятая интерпретируется как разделитель параметров функции.
Как то, не очень чисто, если учесть, что в PRINT это не допускается.
Всегда использую оператор конкатенации, и в ECHO тоже.
Век живи век учись.
Спасибо!
Строитель
Отправлено: 09 Июня, 2018 - 18:22:47
Участник
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014 Откуда: Украина
Помог: 73 раз(а)
Vladimir Kheifets пишет:
PHP-интерпретатор пропускает запятую в функции ECHO .
Оказывается, в функции ECHO запятая интерпретируется как разделитель параметров функции.
Как то, не очень чисто, если учесть, что в PRINT это не допускается.
Внесу немного ясности: echo это не функция, а конструкция языка, в то время как print именно функция. Разница между ними, как вы уже заметили, не существенная, но в некоторых выражениях она критична.
Например, в сокращённых выражениях тернарного оператора, для вывода данных вы не сможете использовать конструкцию echo, но вполне сможете использовать функцию print (скобки не обязательны):
Ну и ещё с помощью конструкции echo можно выводить сколько угодно параметров, перечисляя их через запятую, в то время как функция print не поддерживает подобное перечисление:
А вот отсюда по ZEND_AST_* коду от парсера через zend_compile_print и zend_compile_echo соответственно обе конструкции получают какую-то очень уж похожую реализацию в опкод ZEND_ECHO.
Впрочем я не копал Zend всерьёз и даже поверхностно
----- PostgreSQL DBA
Строитель
Отправлено: 09 Июня, 2018 - 21:09:15
Участник
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014 Откуда: Украина
Помог: 73 раз(а)
Мелкий, выходит, что print это тоже конструкция языка? Я вроде бы где-то видел утверждение, что это всё таки функция... Спасибо, приму к сведению.
Vladimir Kheifets
Отправлено: 11 Июня, 2018 - 10:58:38
Частый посетитель
Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017 Откуда: Германия, Бавария
Помог: 37 раз(а)
Строитель пишет:
Мелкий, выходит, что 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
void echo ( string $arg1 [, string $... ] )
Выводит все аргументы. Символ конца строки не добавляется.
На самом деле, echo - это не функция (это языковая конструкция),
поэтому заключать аргументы в скобки необязательно.
echo (в отличие от других языковых конструкций) не ведет себя как функция,
поэтому не всегда может быть использована в контексте функции.
Вдобавок, если вы хотите передать более одного аргумента в echo, эти аргументы нельзя заключать в скобки.
int print ( string $arg )
Выводит arg.
print на самом деле не является настоящей функцией (это конструкция языка), поэтому заключать аргументы в скобки необязательно.
Главное отличие от echo в том, что print принимает только один аргумент и всегда возвращает 1.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.