|
|
|
| Подскажите ламеру как наиболее правильно сделать.
Вот есть выборка из БД и соответственно если значение определенного поля пустое оно не выводится, как правильно проверить, так:
if($info['text'])
или так
if(!empty($info['text'])) | |
|
|
|
|
|
|
|
для: Tamplier
(05.07.2010 в 21:18)
| | второй вариант | |
|
|
|
|
|
|
|
для: Slo_Nik
(05.07.2010 в 22:01)
| | Почему? | |
|
|
|
|
|
|
|
для: sim5
(05.07.2010 в 22:52)
| | действительно, запарился немного...
if(empty($info['text'])){
} | |
|
|
|
|
|
|
|
для: Slo_Nik
(05.07.2010 в 23:54)
| | смотря чего ожидаете от переменной.. если там строка и вас интересует что $info['text'] != "", тогда
if(strval($info['text']) != '') {
}
|
empty не сработает если в переменной "0", например. | |
|
|
|
|
|
|
|
для: sl1p
(06.07.2010 в 00:25)
| | этот момент Tamplier не уточнил | |
|
|
|
|
|
|
|
для: Slo_Nik
(06.07.2010 в 00:53)
| | > значение определенного поля пустое.
0 это не пустое:) | |
|
|
|
|
|
|
|
для: sl1p
(06.07.2010 в 00:25)
| | А чем вам
if ($var != '')
не понравилось?
К тому же, включите логику (отталкиваюсь от имени индекса). Если текст состоит только из нуля - нафиг его выовдить? А значит !empty вполне подойдет. | |
|
|
|
|
|
|
|
для: neadekvat
(06.07.2010 в 01:23)
| | опечаталсо, вернее будет так:
if(strval($info['text']) !== '')
т.к.
$var != ''
один хрен с empty();
if ($var)
if(!empty($var))
if($var != '')
одно и то же, за исключением того что empty() проверит наличие такой переменной.
А насчёт выводить 0, то это вы уже вылазите за рамки :)
0 в переменной афтара это же текст? Текст. Значит выводить. | |
|
|
|
|
|
|
|
для: sl1p
(06.07.2010 в 01:36)
| | Так можно
if ($var !== '')
Без всяких там приведений к строке и т.д. | |
|
|
|
|
|
|
|
для: neadekvat
(06.07.2010 в 01:41)
| | ну можно, мало ли чё там автор с переменной делал :)
может он её в int перевел :D | |
|
|
|
|
|
|
|
для: sl1p
(06.07.2010 в 01:44)
| | Ну так попробуйте конструкцию
if (strval(0) != '')
и
if (0 !== '')
Результат то как бы тот же..должен быть.
Только в первом случаи еще функцию пришлось вызывать, а во втором просто сравнить "с пристрастием" | |
|
|
|
|
|
|
|
для: Slo_Nik
(05.07.2010 в 23:54)
| | Первый вариант был ближе к истине.
if ($var)
и
if (empty($var))
возвращают противоположные результаты. | |
|
|
|
|
|
|
|
для: sim5
(05.07.2010 в 22:52)
| | По-моему, потому что при варианте
if ($var)
подставляется значение переменной и собстно оттуда уже происходит истина или ложь
Во втором же варианте использована функция, предназначенная именно для того, чтобы проверить значение переменной. | |
|
|
|
|
|
|
|
для: neadekvat
(06.07.2010 в 01:26)
| | Вот и надо объяснять, что и по чем. | |
|
|
|
|
|
|
|
для: sim5
(06.07.2010 в 03:38)
| | Вот я и говорю, вопрос вроде простой, а как правильно делается, одному Аллаху ведомо....
Переменная $info['text'] может выводить любую строку, но не ноль.
Можно сделать несколькими вариантами и все они будут работать, но как все таки правильно?
<?php
if ($info['text']) { }
if (!empty($info['text'])) { }
if ($info['text'] != '') { }
?>
|
| |
|
|
|
|
|
|
|
для: Tamplier
(06.07.2010 в 10:04)
| | любой вариант.
но скорее самый короткий тут будет
if ($info['text']) { }
т.к. переменная существует и не нужно проверять это. | |
|
|
|
|
|
|
|
для: sl1p
(06.07.2010 в 11:07)
| | Но, как я уже сказал, результат хоть и будет верный, но получен будет через задницу. Вам нужны данные, полученные через задницу? :) | |
|
|
|
|
|
|
|
для: neadekvat
(06.07.2010 в 11:42)
| | никакой не через задницу)
всё кк) | |
|
|
|