Ваша проблема - путаница между операторами =
и ==
.
Если вы хотите сравнить два значения в PHP, вы должны использовать ==
(то есть два знака равенства вместе).
Использование одного знака равенства само по себе установит значение справа на значение слева (согласно его использованию в первой строке примера кода).
Смотрите эту страницу в руководстве по php: http://www.php.net/manual/en/language.operators.comparison.php
Обратите внимание, что есть также оператор тройного равенства ===
, который также используется для сравнения, где вы также хотите сравнить тип данных двух сторон. Для базового использования обычно достаточно двойного равенства, но страница руководства даст вам больше информации о разнице между ними.
[EDIT]
Re your edit - все комментарии, предлагающие ==
вместо =
, верны. Оператор с одинарным равенством не подходит для использования. Если проблема с оператором двойного равенства по-прежнему возникает, тогда $input
на самом деле не равно a
.
В этом случае вам может потребоваться отладка ввода. Предполагая, что ваша строка echo $input;
действительно показывает a
, я бы сказал, что наиболее вероятный сценарий состоит в том, что вы входите в какое-то пустое пространство с ним, возможно, возврат каретки или что-то в этом роде.
Чтобы доказать это, вы можете напечатать это так:
<code>print "<pre>[".$input."]
";
Появятся любые неожиданные дополнительные символы, которые вы могли ввести.
Если вас не беспокоит пустое пространство, используйте функцию trim()
, чтобы избавиться от него.
Вы также можете использовать такие функции, как strlen()
, чтобы проверить длину строки и т. Д.
[ИЗМЕНИТЬ СНОВА]
Хорошо, глядя на ваш HTML-код, я бы сказал, что это определенно будет проблемой с пробелами.
<textarea name="textarea" id="textarea">
</textarea>
Это приведет к созданию текстовой области с переводом строки в качестве содержимого по умолчанию, поскольку открывающий и закрывающий теги <textarea>
находятся в отдельных строках. Если вы просто наберете a
, то вы фактически отправите a
плюс перевод строки.
Лучший совет, вероятно, trim()
ввод перед проверкой.