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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: В чём различие (empty() и isset())?

Сообщения:  [1-10]   [11-15] 

 
 автор: 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 

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

мимо

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

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

$text = '';

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

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

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

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

.

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

Я не знаю.

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

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

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

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

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

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

   
 
 автор: Саня   (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   (26.06.2006 в 23:53)   письмо автору
 
   для: Ganter   (26.06.2006 в 23:43)
 

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

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

   

Сообщения:  [1-10]   [11-15] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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