[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: условие: переменная задана/не задана
BorodinKO
Как в php сделать условие если переменная задана/не задана ?



Спустя 6 минут, 49 секунд (26.12.2010 - 17:34) Invis1ble написал(а):
BorodinKO
if (isset($variable))
{
// переменная задана
}
else
{
// переменная не задана
}

Спустя 5 часов, 36 минут, 14 секунд (26.12.2010 - 23:10) quickxyan написал(а):
if (empty($var))
{
//переменная пустая(тоесть не задана)
}
else
{
//переменная не пустая(задана)
}

Спустя 2 минуты, 54 секунды (26.12.2010 - 23:13) Invis1ble написал(а):
quickxyan
если переменная не задана, твой код вызовет notice

Спустя 14 минут, 10 секунд (26.12.2010 - 23:27) quickxyan написал(а):
постоянно пользуюсь такой конструкцией и нотисов нет(вывод всех ошибок включен).

попробуй у себя, может это только у меня оно норм работает smile.gif

Спустя 13 минут, 17 секунд (26.12.2010 - 23:40) Invis1ble написал(а):
quickxyan
да, че-то тупанул, сорри )

Спустя 2 минуты, 57 секунд (26.12.2010 - 23:43) ZSH написал(а):
Цитата
если переменная не задана, твой код вызовет notice


не вызовет, но если в переменной будет 0 или пустая строка то получится - не задана

Спустя 2 минуты, 47 секунд (26.12.2010 - 23:46) quickxyan написал(а):
если в ней будет ноль или пустая строка, то она тоже будет задана - ноль это тоже цифра, а пустая строка - это просто строковый тип даннных.

Спустя 8 минут, 39 секунд (26.12.2010 - 23:54) ZSH написал(а):
а я о чем?

isset задана - не задана

empty пустая - не пустая , но если не задана то не вызывает notice

Спустя 1 минута, 6 секунд (26.12.2010 - 23:56) Invis1ble написал(а):
quickxyan
ZSH прав, так что я тоже прав был =)
<?php
error_reporting(E_ALL | E_STRICT);
$var = ''; // попробуй еще подставь 0 и false
echo !empty($var) ? 'переменная задана' : 'переменная не задана';
?>

;)

Спустя 16 минут, 59 секунд (27.12.2010 - 00:13) Invis1ble написал(а):
Исходя из вышеизложенного, нужно делать с isset() как я сразу и показал =)

Спустя 7 минут, 53 секунды (27.12.2010 - 00:20) quickxyan написал(а):
я не понимаю в чем дело? предпологаю, что переменная передаеться из формы, а раз так, то тут пофиг как проверять ее - через isset или empty
если через isset передать 0 или оставить поле незаполненным, то переменная тоже будет считаться заданой

если не прав, то извините конечно, но кажеться я прав

Спустя 7 минут, 43 секунды (27.12.2010 - 00:28) Invis1ble написал(а):
quickxyan
если переменная передается (не важно откуда), то она уже заведомо задана

Спустя 9 минут, 32 секунды (27.12.2010 - 00:38) wplounge написал(а):
Цитата
а раз так, то тут пофиг как проверять ее - через isset или empty

Это скорее вопрос, так сказать, культуры кода.
isset - для проверки, задана ли переменная, empty - для проверки на пустоту.


Спустя 18 минут, 53 секунды (27.12.2010 - 00:57) kirik написал(а):
Вот честно, без подглядывания в ман и тестов кода.
Что выдаст isset, если переменная будет равна null?

Спустя 5 минут, 13 секунд (27.12.2010 - 01:02) Invis1ble написал(а):
kirik
насколько я помню, false...

Спустя 5 минут, 27 секунд (27.12.2010 - 01:07) kovaldm написал(а):
Чем отличается isset от empty?

Спустя 7 минут, 46 секунд (27.12.2010 - 01:15) Invis1ble написал(а):
kovaldm
omg, прочти этот топик =)

Спустя 2 минуты, 33 секунды (27.12.2010 - 01:18) wplounge написал(а):
Цитата
Чем отличается isset от empty?


empty - определяет, является ли переменная пустой http://php.net/manual/en/function.empty.php

isset - определяет, установлена ли переменная и не является ли она null
http://php.net/manual/en/function.isset.php

Вообще, эта тема уже обсуждалась http://phpforum.ru/index.php?showtopic=27162&st=0&

Спустя 8 часов, 24 минуты, 22 секунды (27.12.2010 - 09:42) linker написал(а):
Условие задана/не задана, значит используем isset(). По факту, если переменная не задана, то сие означает NULL. Поэтому
$a = null; 
echo isset($a) ? 'Задана' : 'Не задана';
отобразит 'Не задана'. Важно не то как переменная обзывается, важно на какой адрес памяти ссылается данный именованный указатель. При NULL переменная никуда не ссылается, а значит не установлена.

Спустя 8 часов, 15 минут, 27 секунд (27.12.2010 - 17:57) inpost написал(а):
Я всегда проверяю на !empty. Пока не работал по движку Ирбиса - пользовался и empty и isset. =)

Спустя 12 минут, 19 секунд (27.12.2010 - 18:10) kovaldm написал(а):
Зависит от задачи, если нужно проверить определена/не определена, тогда isset, если пустая/не пустая тогда empty.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.