[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Инициализация
de facto
Доброй ночи

Вот в чем вопрос:
PHP
$test = !empty($_POST['test'])?$_POST['test']:null;


и

PHP
if(isset($_POST['test'])) {$test=$_POST['test'];}


это одно и тоже, только вид другой ?

понять немогу huh.gif



Спустя 15 минут, 24 секунды (23.10.2009 - 02:13) krasilich написал(а):
Ну, скажем так, результат операции буде один и тот же)

Спустя 4 минуты, 51 секунда (23.10.2009 - 02:18) twin написал(а):
Нет. Разный. Первый не пустит 0.

Спустя 1 минута, 14 секунд (23.10.2009 - 02:19) twin написал(а):
Второй правда корректнее так
PHP
$test = isset($_POST['test'])?$_POST['test']:null;

Спустя 6 минут, 58 секунд (23.10.2009 - 02:26) de facto написал(а):
тоесть тут мы проверяем существует ли переменная, если существует, то присваем ей ноль ?

twin

это я у тебя увидел, в начел почти каждого скрипта что-то подобное

PHP
$test = !empty($_POST['test'])?$_POST['test']:null;


unsure.gif

Спустя 7 минут, 3 секунды (23.10.2009 - 02:33) krasilich написал(а):
twin
Если переменая 0, то isset возвращает true, a empty - false?

Спустя 56 минут, 32 секунды (23.10.2009 - 03:30) Joker написал(а):
Цитата (see_man @ 23.10.2009 - 05:33)
Если переменая 0, то isset возвращает true, a empty - false?


совершенно верно.

Спустя 31 минута, 48 секунд (23.10.2009 - 04:02) twin написал(а):
Цитата
это я у тебя увидел, в начел почти каждого скрипта что-то подобное

Так если я скажу Богу молиться, ты лоб расшибешь?
Эта конструкция применяется, когда
а) Нужно проверить существование переменной
б) И что она не пуста и не равна нулю.
Два в одном флаконе. Если предполагается, что передаваемым значением может быть ноль или пустая строка, то нужно проверять наличие переменной, а не её пустоту. То есть isset()

Спустя 9 минут, 42 секунды (23.10.2009 - 04:11) krasilich написал(а):
Да уж, до этого времени я все скрипты писал с расчетом, что isset вернет false, если переменна 0...


P.S Ушел курить мануал ...

Спустя 8 часов, 29 минут, 46 секунд (23.10.2009 - 12:41) glock18 написал(а):
empty === isset && var [== true]

второй вариант помимо различия isset и !empty не гарантирует, что переменная будет определена после этого блока.

Спустя 2 часа, 21 минута, 48 секунд (23.10.2009 - 15:03) Michael написал(а):
Цитата (Joker @ 23.10.2009 - 00:30)
Цитата (see_man @ 23.10.2009 - 05:33)
Если переменая 0, то isset возвращает true, a empty - false?


совершенно верно.

совершенно не верно
$x = 0;
empty($x) == true

Спустя 3 часа, 6 минут, 44 секунды (23.10.2009 - 18:10) Joker написал(а):
Цитата (Michael @ 23.10.2009 - 18:03)
совершенно не верно


Да извеняюсь неправильно понел вопрос.

Во общем вот:

isset: true = если существует переменная; false = если не существует;
empty: true = если переменная не существует или пуста; false = если переменная существует и не пустая;
Быстрый ответ:

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