Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: В чём различие (empty() и isset())?
 
 автор: Ganter   (26.06.2006 в 21:24)
 
 

Вчём различие, и как лучше писать:
1. if (!empty($text))
2. if ($text)
3. if (isset($text))
Ведь все они выводят один и тотже результат. Так в чём же различие???

   
 
 автор: Trianon   (26.06.2006 в 21:44)   письмо автору
 
   для: Ganter   (26.06.2006 в 21:24)
 

(1) != (3) если в $text пустая строка.
(2) != остальным вариантам, если $text не существует, т.к. выведет диагностику неопределенной переменной.

   
 
 автор: valenok   (26.06.2006 в 22:15)   письмо автору
 
   для: Ganter   (26.06.2006 в 21:24)
 

Чесно: я не понял что написал trianon..

3. Проверяет была ли создана такая переменная. Тоесть существует ли она..
2. Тоже самое что 1
1. Проверяет есть ли значение у переменной
Тоже самое что if($text="") Тоесть пустое ли там значение.
Пологаясь на то что переменная уже была создана.
Если переменной до этого создано не было - выведет сообщение об ошибке уровня E-Notice
и вернёт true - тобишь пустое значение переменной.

P.S. - ечли хотите узнать что делает функция х - пишем в адресной строке:
http://php.net/x

Примеры:
http://php.net/isset
http://php.net/empty

   
 
 автор: Ziq   (26.06.2006 в 23:34)   письмо автору
 
   для: valenok   (26.06.2006 в 22:15)
 

Если нет никакой разницы между 1 и 2, какой смысл использовать функцию empty().

P.S. Она в скорости немного проигрывает...

   
 
 автор: Ganter   (26.06.2006 в 23:43)
 
   для: Ziq   (26.06.2006 в 23:34)
 

>Если нет никакой разницы между 1 и 2, какой смысл использовать функцию empty().
Я тоже так думаю, да и писать if (!empty()) как то дольше. Но все почемуто ПИШУТ!!!

   
 
 автор: valenok   (26.06.2006 в 23:53)   письмо автору
 
   для: Ganter   (26.06.2006 в 23:43)
 

Люди извините. Между 2 и 3.
Я чёт с цифрами спутал..

А я только её и пишу.
if(!empty($text))
Так как это и проверяет есть ли у переменной значение.
А если нет то какая разница - нет переменной или нет значения.
Просто выводим ошибку - нет переменной..

   
 
 автор: Саня   (27.06.2006 в 00:11)   письмо автору
 
   для: valenok   (26.06.2006 в 23:53)
 

А если нет то какая разница - нет переменной или нет значения.
Разница есть. И большая. Если переменная не существует - это одно, но если переменная существует, но она пуста - это уже совершенно другое.

Вчём различие, и как лучше писать:
1. if (!empty($text))
2. if ($text)
3. if (isset($text))
Ведь все они выводят один и тотже результат. Так в чём же различие???

Различия вы можете посмотреть в мануале: http://ru.php.net/manual/ru/print/types.comparisons.php

   
 
 автор: valenok   (27.06.2006 в 00:32)   письмо автору
 
   для: Саня   (27.06.2006 в 00:11)
 

Если они получены от пользователя - то никакой разницы..
Не разница есть конечно. Но всё равно тот же результат.

А если нет - другое дело..

   
 
 автор: Саня   (27.06.2006 в 01:08)   письмо автору
 
   для: valenok   (27.06.2006 в 00:32)
 

Если они получены от пользователя - то никакой разницы..
Если пользователь не ввёл в поле значение, то переменная в суперглобальном массиве будет существовать, но она окажется пустой. Если эта переменная не существует - то тут можно уловить попытку подмены формы. Это тонкие моменты.

   
 
 автор: valenok   (27.06.2006 в 09:42)   письмо автору
 
   для: Саня   (27.06.2006 в 01:08)
 

Я не знаю.

[поправлено модератором]

   
 
 автор: Саня   (27.06.2006 в 10:52)   письмо автору
 
   для: valenok   (27.06.2006 в 09:42)
 

.

   
 
 автор: Ziq   (27.06.2006 в 21:35)   письмо автору
 
   для: Саня   (27.06.2006 в 00:11)
 

Может туплю, но я так и не понял разницы между 1 и 2.

   
 
 автор: Trianon   (27.06.2006 в 21:41)   письмо автору
 
   для: Ziq   (27.06.2006 в 21:35)
 

$text = '';

isset($text) = true
!empty($text) = false

   
 
 автор: Ziq   (27.06.2006 в 21:43)   письмо автору
 
   для: Trianon   (27.06.2006 в 21:41)
 

мимо

1. if (!empty($text)) 
2. if ($text)

   
 
 автор: Trianon   (27.06.2006 в 21:52)   письмо автору
 
   для: Ziq   (27.06.2006 в 21:43)
 


<?
unset($text);
if(!empty(
$text)) echo 'true';  else echo 'false<br>';
if(
$text) echo 'true';  else echo 'false<br>';
?>

первая строка выдаст

false 

вторая строка выдаст

Notice: Undefined variable: text in ?????.php on line ?
false 

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования