Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: это баг?

 PHP.SU

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


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

> Без описания
IOpeH
Отправлено: 01 Марта, 2008 - 23:04:12
Post Id



Частый гость


Покинул форум
Сообщений всего: 175
Дата рег-ции: Нояб. 2007  


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




Вот такой код выдаёт ошибку !
CODE (text):
скопировать код в буфер обмена
  1.  
  2. $a='aaa';
  3. if(!empty(trim($a)))print $a;
  4.  


странно не правда ли ? ...

зы:конечно изначально код был намного сложней, кучу времени потерял, пока нашёл где именно ошибка. У меня денвер поставлен, на других серверах не пробовал
 
 Top
RomAndry Администратор
Отправлено: 01 Марта, 2008 - 23:39:37
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 913
Дата рег-ции: Янв. 2008  


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




empty

Цитата:
Note: empty() only checks variables as anything else will result in a parse error. In other words, the following will not work: empty(trim($name)).
 
My status
 Top
evgenijj
Отправлено: 02 Марта, 2008 - 00:01:37
Post Id



Участник


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


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




Тут даже отвечать-то трудно - потому как для особо тупых написано
Цитата:
Обратите внимание, что это не имеет смысла при использовании с чем-либо, кроме переменной; т.е. empty (addslashes ($name)) не имеет смысла, поскольку будет проверяться что-либо, не являющееся переменной, как переменная со значением FALSE.

К сожалению, есть еще очень тупые - этим вообще ничего не объяснишь
 
 Top
IOpeH
Отправлено: 02 Марта, 2008 - 00:40:29
Post Id



Частый гость


Покинул форум
Сообщений всего: 175
Дата рег-ции: Нояб. 2007  


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




ничего особо тупого я в своём вопросе не вижу, тем более русского мануала по empty на офсайте нет Хорошо
(Добавление)
только всё равно так и не понял, почему не имеет смысла эта конструкция
 
 Top
Eihwaz
Отправлено: 02 Марта, 2008 - 01:05:48
Post Id


Гость


Покинул форум
Сообщений всего: 112
Дата рег-ции: Нояб. 2007  


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




2 IOpeH
RomAndry пишет:
Note: empty() only checks variables as anything else will result in a parse error. In other words, the following will not work: empty(trim($name)).


Перевод:
"Заметьте, empty() проверяет только переменную, потому что все остальное приведет к ошибке при обработке. Другими словами, подобная конструкция работать не будет: empty(trim($name))."
Т.е., мануал так и гласит: "Либо так, либо вообще никак" (Закон суров, но это закон (с)).
 
 Top
IOpeH
Отправлено: 02 Марта, 2008 - 10:08:36
Post Id



Частый гость


Покинул форум
Сообщений всего: 175
Дата рег-ции: Нояб. 2007  


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




Цитата:
Т.е., мануал так и гласит: "Либо так, либо вообще никак" (Закон суров, но это закон (с)).
вот это как мне кажеться правильное объяснение, а empty(trim($name)) ИМЕЕТ смысл ! тк проще было бы написать всё в одну строку ,чем сначала присвоить переменной её тримированное значение, а потомпроверять на пустоту
 
 Top
Staind
Отправлено: 02 Марта, 2008 - 23:04:30
Post Id



Гость


Покинул форум
Сообщений всего: 116
Дата рег-ции: Нояб. 2007  
Откуда: Планета сокровищ


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

[+]


млин,
2IOpeH, написали же, что нельзя в эту функцию еще функции пихать. Пробуйте по другому. Мало ли что Вам не нравится. Мне тоже много что не нравится.
Для альтернативы пишите так:

(Отредактировано автором: 02 Марта, 2008 - 23:06:22)

 
 Top
IOpeH
Отправлено: 03 Марта, 2008 - 11:31:18
Post Id



Частый гость


Покинул форум
Сообщений всего: 175
Дата рег-ции: Нояб. 2007  


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




Радость ну конечно же я уже давным давно сделал подругому, просто тупость что empty(trim($name)) так писать нельзя.
 
 Top
valenok Модератор
Отправлено: 03 Марта, 2008 - 15:49:22
Post Id



Здесь могла бы быть ваша реклама


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


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




А empty и не предназначался для строковых переменных.


-----
Truly yours, Sasha.
 
My status
 Top
EuGen Администратор
Отправлено: 03 Марта, 2008 - 16:21:05
Post Id


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


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


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




Почему именно empty ..
А чем плох isset() ?

(Отредактировано автором: 03 Марта, 2008 - 16:21:36)



-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Staind
Отправлено: 03 Марта, 2008 - 16:41:18
Post Id



Гость


Покинул форум
Сообщений всего: 116
Дата рег-ции: Нояб. 2007  
Откуда: Планета сокровищ


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

[+]


2EuGen,
isset() проверяет на существование переменной
empty() проверяет на пустоту переменной
 
 Top
EuGen Администратор
Отправлено: 03 Марта, 2008 - 17:19:22
Post Id


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


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


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




Для того, чтобы понять, пустая ли строка, логично использовать сравнение !=''; то есть правильнее всего тогда уж сделать
PHP:
скопировать код в буфер обмена
  1.  
  2. $hasContent=0;
  3. if (isset($var))
  4.    if ($var!='')
  5.       $hasContent=1;
  6.  

(Отредактировано автором: 03 Марта, 2008 - 17:20:05)



-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
RomAndry Администратор
Отправлено: 03 Марта, 2008 - 18:01:35
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 913
Дата рег-ции: Янв. 2008  


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




Цитата:
просто тупость что empty(trim($name)) так писать нельзя.

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if(empty('bla-bla-bla') || isset('bla-bla-bla')){
  4.  
  5. }
  6. ?>
  7.  

вот так понятно почему так писать нельзя?
 
My status
 Top
Staind
Отправлено: 03 Марта, 2008 - 18:18:49
Post Id



Гость


Покинул форум
Сообщений всего: 116
Дата рег-ции: Нояб. 2007  
Откуда: Планета сокровищ


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

[+]


Цитата:
Для того, чтобы понять, пустая ли строка, логично использовать сравнение !=''; то есть правильнее всего тогда уж сделать

2EuGen, ты вообще читаешь что другие пишут? Да, логично, я это писал в этом примере (приводил альт. пример).
 
 Top
EuGen Администратор
Отправлено: 03 Марта, 2008 - 18:24:58
Post Id


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


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


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




Вот уж, поверьте, очень внимательно читаю. Во-первых, мой пример не эквивалентен Вашему. Во-вторых, здесь речь шла об isset, а не об empty, читайте внимательнее. Это был ответ на Ваше замечание про empty и isset.


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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB