Попытка получить разъяснения по этому поводу. Имейте тестовую форму, в которой вы отправляете письмо, и оно дает соответствующее сообщение.
if ($letter = "A") { $message = "First letter."; }
if ($letter = "B") { $message = "Second letter."; }
if ($letter = "C") { $message = "Third letter."; }
Он продолжает давать последнее сообщение $, возможно, в этом случае "Третье письмо". Я знаю, что это имеет какое-то отношение к оператору/условному выражению и = sign, просто не уверен, что правильно использовать. Благодарю!
==
Операторы сравнения PHP
С ==
означает $x == $y
, он возвращает true, если $ x и $ y имеют одинаковые пары ключ/значение
=
вызванный оператор назначения PHP
и =
означает $x = $y
Левый операнд получает значение выражения справа
=
является оператором присваивания, поэтому вы в основном спрашиваете: "Работало ли это, чтобы назначить букву" А "?"? Это всегда будет верно.
Оператор сравнения ==
, поэтому он должен быть, if ($letter == "A")...
и так далее.
=
фактически возвращает значение, которое он установил. if ($letter = "A")
- это то же самое, что и $letter = "A"; if ($letter)
. Это не всегда может быть правдой, например, что если вы сделали if($test = false)
?
$letter = "A"
, иначе вы правы. :)
=
устанавливает значение $letter
в значение, и поскольку этот параметр работал, он возвращался true
каждый раз, поэтому на самом деле $message
устанавливалось каждый раз, но осталось только последнее.
Используйте ==
для сравнения. Или еще лучше, у вас есть структура данных для ответа, а затем вытащите ее оттуда:
$answers = array(
'A' => 'First letter.',
'B' => 'Second letter.',
'C' => 'Third letter.'
);
$message = array_key_exists($letter, $answers) ? $answers[$letter] : '';
=
фактически возвращает значение, которое он установил. if ($letter = "A")
- это то же самое, что и $letter = "A"; if ($letter)
. Это не всегда может быть правдой, например, что если вы сделали if($test = false)
?
if ($letter == "A")
использовать==