header("Content-Type: text/html; charset=utf-8");
error_reporting(E_ALL);
$text = !empty($_POST['text'])?$_POST['text']:null;
?>
<form action="?" method="post">
<input name="text" type="text" value="<?php echo htmlspecialchars($text) ?>"/><br />
<input name="ok" type="submit" />
</form>
<?php
echo htmlspecialchars($text);
источник
автор использует функцию !empty()?
Не лучше ли было использовать функцию isset()?
Спустя 19 минут, 31 секунда (27.03.2010 - 22:03) qpayct написал(а):
мада-а-а.... вопрос на миллион баксов...
потому, что ему(автору) пофиг, что данное isset() и по всей видимости надо чтобы не было равно нулю
ЧИТАЙ МАНУАЛ!!! ТЕСТИ ISSET() !EMPTY() и вопросы сами по себе пропадут
потому, что ему(автору) пофиг, что данное isset() и по всей видимости надо чтобы не было равно нулю
ЧИТАЙ МАНУАЛ!!! ТЕСТИ ISSET() !EMPTY() и вопросы сами по себе пропадут
Спустя 1 час, 10 минут, 12 секунд (27.03.2010 - 23:13) sergeiss написал(а):
qpayct - ты не прав! Это вопрос из тех, что в мануале просто не поймешь разницу. Если нету опыта. А вопрос появляется как раз тогда, когда опыта нету
Автору темы:
isset проверяет, определена ли переменная. В смысле, что создана ли она. И не важно, что там именно определено. Даже если null, но переменная была создана, то isset вернет true.
empty проверяет содержимое переменной. Вернет false в 2-х случаях: если содержимое пустое, и если переменая не определена.
В данном случае строка
говорит о том, что автору не важно, была ли передана переменная text в ПОСТе. Ему важно, что либо было что-то введено (вариант 1), либо не было ничего введено (или не было вообще передано такой переменной) - вариант 2.
Автору темы:
isset проверяет, определена ли переменная. В смысле, что создана ли она. И не важно, что там именно определено. Даже если null, но переменная была создана, то isset вернет true.
empty проверяет содержимое переменной. Вернет false в 2-х случаях: если содержимое пустое, и если переменая не определена.
В данном случае строка
$text = !empty($_POST['text'])?$_POST['text']:null;
говорит о том, что автору не важно, была ли передана переменная text в ПОСТе. Ему важно, что либо было что-то введено (вариант 1), либо не было ничего введено (или не было вообще передано такой переменной) - вариант 2.
Спустя 10 минут, 43 секунды (27.03.2010 - 23:24) qpayct написал(а):
Спустя 1 минута, 35 секунд (27.03.2010 - 23:26) glock18 написал(а):
Цитата (sergeiss @ 27.03.2010 - 20:13) |
isset проверяет, определена ли переменная. В смысле, что создана ли она. И не важно, что там именно определено. Даже если null, но переменная была создана, то isset вернет true. |
насколько я знаю, в мануале написано ровно то же самое.
Цитата (sergeiss @ 27.03.2010 - 20:13) |
empty проверяет содержимое переменной. Вернет false в 2-х случаях: если содержимое пустое, и если переменая не определена. |
опять же в мануале написано точнее. а именно не "содержимое пустое", а если значение приводится к boolean как false.
все таки склонен поддержать qpayct. вопрос совсем без подвоха - надо всего лишь почитать.
Спустя 22 минуты, 44 секунды (27.03.2010 - 23:48) sergeiss написал(а):
Да хрен его знает... Я тут немного пЫва принял - поэтому, возможно, более добрый, чем надо бы
Спустя 11 минут, 53 секунды (28.03.2010 - 00:00) glock18 написал(а):
Спустя 4 минуты, 4 секунды (28.03.2010 - 00:04) qpayct написал(а):
о! точно! пивож стынет! пойду-ка я тоже добреть
Спустя 6 часов, 38 минут, 15 секунд (28.03.2010 - 05:43) twin написал(а):
Я могу сказать почему, так как я автор)))
Потому что лениво писать две проверки, не совсем понял, это ли имел ввиду qpayct
Дело в том, что empty() устраивает в данном случае по всем параметрам. А именно:
Потому что лениво писать две проверки, не совсем понял, это ли имел ввиду qpayct
Дело в том, что empty() устраивает в данном случае по всем параметрам. А именно:
Цитата |
The following things are considered to be empty: "" (an empty string) 0 (0 as an integer) "0" (0 as a string) NULL FALSE array() (an empty array) var $var; (a variable declared, but without a value in a class) |
Кроме того, она на вызывает нотиса, если переменной не существует. По этому в таких случаях (когда можно пренебречь нулем) я предпочитаю эту конструкцию более длинным веревкам плана
$text = (isset($_POST['text']) && $_POST['text'] != '')?$_POST['text']:null;
Спустя 31 минута, 55 секунд (28.03.2010 - 06:14) kirik написал(а):
Цитата (sergeiss @ 27.03.2010 - 15:13) |
Даже если null, но переменная была создана, то isset вернет true. |
isset вернет тут false (попался уже один раз на этом).
В мане по isset:
Цитата |
Returns TRUE if var exists and has value other than NULL, FALSE otherwise. |
А еще советую всем почитать эту штуку.