isset и empty

fStrange

Новичок
isset и empty

наткнулся в коде чужого скрипта на вот такую конструкцию
PHP:
if (isset($_SERVER['HTTP_REFERER']) and !empty($_SERVER['HTTP_REFERER']) )
может кто нибудь обьяснить зачем оно?
 

fStrange

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


разве $_SERVER['HTTP_REFERER']) может иметь значения 0, '','0' для которых можно было бы проверять !empty
 

Panchous

Павел
это не ФАК - а мануал
и по последней ссылке ты ничего не читал
 

WP

^_^
Конечно так проверять глупо... т.к. empty и так подразумевает isset. Хотя лично я бы оставил лишь isset.
 

Gorynych

Посетитель PHP-Клуба
WP это не глупо

empty конечно подразумевает isset, но вот !isset (т.е. не инициализированная, не определенная переменная) при вызове empty породит предупреждение.

просто у Вас слишком приглушен вывод предупреждений и поэтому нет привычки к строгости проверок

---

empty это не 0
 

zarus

Хитрожопый макак
Автор оригинала: Gorynych
WP это не глупо

empty конечно подразумевает isset, но вот !isset (т.е. не инициализированная, не определенная переменная) при вызове empty породит предупреждение.

просто у Вас слишком приглушен вывод предупреждений и поэтому нет привычки к строгости проверок
Это стеб такой тонкий?
PHP:
<?php
  ini_set( 'display_errors', 1 );
  error_reporting( E_ALL | E_STRICT );
  if ( empty( $nullvalue ) ) {
    echo 'empty or null';
  } else {
    echo 'some value';
  }
?>
 

WP

^_^
Gorynych
Автор оригинала: Gorynych
WP это не глупо

empty конечно подразумевает isset, но вот !isset (т.е. не инициализированная, не определенная переменная) при вызове empty породит предупреждение.

просто у Вас слишком приглушен вывод предупреждений и поэтому нет привычки к строгости проверок

---

empty это не 0
Где берете травку? :) У меня E_ALL.
[m]empty[/m]:
empty() is the opposite of (boolean) var, except that no warning is generated when the variable is not set.
Перевести?

-~{}~ 17.08.06 13:09:

> просто у Вас слишком приглушен вывод предупреждений и поэтому нет привычки к строгости проверок
Тут травкой явно дело не ограничилось. Надо думать галюциногенные поганки :D Я всегда пишу с E_ALL, проверки у меня ровно такие какие должны быть по смыслу, никаких левых данных мои скрипты не принимают. А Вам я советую, главным образом, делать выводы не на основе своих выдумок, это относится и к ошибке в твоем толковании поведения empty(), и к выводам о моих проверках, привычках, уровне вывода ошибок, а также ошибочному отверждения "это не глупо". А во-вторых почитайте мануал наконец, ага. Я его выкурил давным давным давно, и не парюсь. Чего всем и желаю.
 

Gorynych

Посетитель PHP-Клуба
WP
судя по переодическим высказываниям на форуме мануал Вы именно выкурили, а стоило изучать и накапливать опыт. Но это к теме не относится, ага.
 

zarus

Хитрожопый макак
Автор оригинала: Gorynych
WP
судя по переодическим высказываниям на форуме мануал Вы именно выкурили, а стоило изучать и накапливать опыт. Но это к теме не относится, ага.
ПерИодическим. Хватит оффтопить.

Приведите-ка лучше пример, где empty выдаст предупреждение. А то может мы читать разучились, или мануал неправильный.

з.ы. А вставать в позу обиженного и угнетенного будете перед мамой или женой.
 

WP

^_^
[offtopic]
Gorynych
Давайте не будем переходить на личности. Не я начал оффтопик, а Вы сказав "просто у Вас слишком приглушен вывод предупреждений и поэтому нет привычки к строгости проверок". Я ответил.
> судя по переодическим высказываниям на форуме мануал Вы именно выкурили, а стоило изучать и накапливать опыт.
Я ж говорю, подкиньте травки для эффекта :D
> Но это к теме не относится, ага.
Предлогаю говорить по теме.
[/ofttopic]

-~{}~ 17.08.06 13:54:

zarus
> или женой.
Может сделать ноги.
 

Gorynych

Посетитель PHP-Клуба
1) zarus

легко!

Код:
<?php
$tmp = $_ENV['TMPDIR'];
?>

[b]ВЫВОД:[/b]

Notice: Undefined index: TMPDIR in d:\Projects\...\test.php on line 2
Условия:
======
ОС - WindowsXP
Apache Version - Apache/1.3.34 (Win32) PHP/5.1.2
display_errors - On
display_startup_errors - Off
safe_mode - Off
error_reporting - E_ALL & ~E_STRICT

ну теперь встаньте в позу обиженного и заявите что Notice это не Warning и преисполнившись собственного достоинства удалитесь с гордо поднятой головой, ага?

2) у некоторых из вас тут наивная манера "тыкать" и лаять стаей, но Мир несколько больше, чем кажется

P.S. общайтесь так со своей мамой и женой
 

zarus

Хитрожопый макак
Реальная травка. Что-то долго его не отпускает.

-~{}~ 17.08.06 14:10:

PHP:
<?php
if ( !empty( $_ENV['TMPDIR'] ) ) {
  $tmp = $_ENV['TMPDIR'];
}
?>
ВЫВОД:

Notice: Хватит курить травку. Это убивает моск!

-~{}~ 17.08.06 14:10:

з.ы. Тему в юмор.
 

Gorynych

Посетитель PHP-Клуба
zarus

По теме: сглупил. Но почему-то помню, что на граблю с empty() наступал.

По стилю: общайтесь так со своей мамой и женой
 

WP

^_^
Gorynych
> $tmp = $_ENV['TMPDIR'];
А где empty? Ты же имел в виду if (empty($undefined_variable)) {/*...*/} Т.е. $tmp = empty($undefined_variable);
Говоря "при вызове empty породит предупреждение."
ну теперь встаньте в позу обиженного и заявите что Notice это не Warning и преисполнившись собственного достоинства удалитесь с гордо поднятой головой, ага?
OMG. Слово "warning" переводится как "предупреждение", и не означает E_WARNING. Пациент скорее мертв чем жив.
 

Gorynych

Посетитель PHP-Клуба
WP

см. выше: "сглупил. Но почему-то помню, что на граблю с empty() наступал"
 

WP

^_^
Gorynych
По теме: Из тебя клещами надо вытаскивать простую фразу вроде "сорри, ступил, исправлюсь - побежал курить мануал"?
По стилю: лучше быть умным и злым чем добрым и тупым (С). но в стиле я ничего преступного не заметил.
 

zarus

Хитрожопый макак
Gorynych
И что в моем стиле общения такого "злого"?
Что я прямо указал на ошибку?
Или что после продолжения Вами настойчиво утверждать, что Вы не ошиблись, указал Вам на это?

з.ы. "Деффчонки", айда лучше пиво пить ) А то так недолго до драки.
 
Сверху