PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): « 1 [2]   

> Описание: Есть или не есть?:))
Мелкий Супермодератор
Отправлено: 06 Апреля, 2011 - 21:09:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 11888
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 614 раз(а)




IgVlGr пишет:
9)Выводы?

Вывод: эти функции действуют строго так, как описаны в мануале.


-----
PostgreSQL DBA
 
 Top
DeepVarvar Супермодератор
Отправлено: 06 Апреля, 2011 - 23:03:08
Post Id



Активный участник


Покинул форум
Сообщений всего: 10378
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Мелкий:
Вариант 1:

Вариант 2:
PHP:
скопировать код в буфер обмена
  1. $a = "0";
  2. if ($a == "") echo "empty";

IgVlGr выводы?
 
 Top
Мелкий Супермодератор
Отправлено: 06 Апреля, 2011 - 23:11:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 11888
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 614 раз(а)




DeepVarvar, ну? Точно так, как написано в мане. В мане описаны все варианты, которые empty считает empty.
И именно поэтому в первом своём сообщении в этой теме:
Мелкий пишет:
Ну и надо всё равно понимать, что проверяет каждая из функций.


-----
PostgreSQL DBA
 
 Top
OrmaJever
Отправлено: 06 Апреля, 2011 - 23:12:43
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




EuGen пишет:
Насчет поведения - с php 4 оно всегда таким было.

Несогласен. У меня раньше бы php 5.1.1 и функция empty выдавала notice про неустановленую переменую! Такую ошибку не выдавала только isset ! И это факт! Сечас 5.3.5 и такой ошибки нету, но то что было в 5.1.1 это факт!


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
DeepVarvar Супермодератор
Отправлено: 06 Апреля, 2011 - 23:15:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 10378
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




OrmaJever да
(Добавление)
php3:
empty() возвращает false, если var существует и имеет не пустое или не нулевое значение; true в обратном случае.

Еще момент про четверку:
http://www.php[dot]ru/manual/migration4[dot]empty[dot]html
(Добавление)
Начиная с PHP 5, объекты без свойств более не считаются пустыми.

И вообще на кой черт мы тут спорим?
Я скажу только что никогда не использую empty(), потому как тоже нарвался на нотайс.
Я проверяю на пустоту if ($var == "") true;
И буду делать так в дальнейшем, потому, что вижу КАК оно работает.
Зато не буду зависеть от изменений поведения от версии к версии.
 
 Top
EuGen Администратор
Отправлено: 07 Апреля, 2011 - 09:15:11
Post Id


Профессионал


Покинул форум
Сообщений всего: 9097
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Можно на досуге проверить, чтобы развеять миф о php 5.1 С php 4 наблюдал отсутствие Notice, что согласуется с документацией.
Но empty не использую потому что не согласен с тем, что 0 и "0" - пустые значения, они часто пригождаются.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
IgVlGr
Отправлено: 11 Апреля, 2011 - 19:21:39
Post Id


Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




DeepVarvar пишет:
Да, но то что вы привели, не дает ответа на вопрос: Что вернет empty если переменная не будет объявлена или равна NULL?

true
 
 Top
MAXUS
Отправлено: 11 Апреля, 2011 - 19:31:01
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Апр. 2011  


Помог: 7 раз(а)




А чем не устраивает этот вариант?
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. if($_POST['n']){echo $_POST['n']; }else{echo 'Ошибка';};
  4. ?>
  5.  
 
 Top
EuGen Администратор
Отправлено: 12 Апреля, 2011 - 07:41:31
Post Id


Профессионал


Покинул форум
Сообщений всего: 9097
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Сделайте до этой Вашей проверки вызов:

- увидите разницу как минимум в Notice. Да и неявное приведение к типу boolean не всегда устраивает.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Обсуждение статей »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB