Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.226.169.94] |
|
Сообщ.
#1
,
|
|
|
У меня делается запрос LEFT JOIN по некому условию. Если оно не удовлетворяет, то в результате будет NULL. Однако иногда, результат запроса может быть 0 т.е. JOIN успешный, но в результате 0 (число 0).
И потом мне нужно отличить 0 от NULL. Просто If ( массив['поле'] ) не получится, т.к. if в этом случае будет False когда ячейка массива и 0 и NULL. |
Сообщ.
#2
,
|
|
|
Узнать в РНР, является-ли null
Цитата is_null (PHP 4 >= 4.0.4, PHP 5) is_null -- Finds whether a variable is NULL Description bool is_null ( mixed var) Returns TRUE if var is null, FALSE otherwise. See the NULL type when a variable is considered to be NULL and when not. |
Сообщ.
#3
,
|
|
|
Ежели память меня не подводит, то есть в РНР4 такие операторы, как === и !===, то есть эквивалентно, и не эквивалентно. При их использовании NULL != 0
|
Сообщ.
#4
,
|
|
|
Astaroth,
Цитата эт ты где такое надыбал !=== |
Сообщ.
#5
,
|
|
|
Astaroth,
может так !== |
Сообщ.
#6
,
|
|
|
А что скажете про isset ?
Ещё вопрос Есть код переменная = y if (переменная = функция) s = x; else s = y; функция возвращает 0. Понятно, что сработает правая ветка условия и s будет равно y. Но что будет с переменной. Она останется равной y или будет равна 0 ? |
Сообщ.
#7
,
|
|
|
Цитата Song, 1.09.04, 21:51 функция возвращает 0. Понятно, что сработает правая ветка условия и s будет равно y. Но что будет с переменной. Она останется равной y или будет равна 0 ? Переменной сначала присвоится результат функции (т.е. 0) |
Сообщ.
#8
,
|
|
|
Тогда получается что строчка переменная = y бессмысленна?
|
Сообщ.
#9
,
|
|
|
Цитата isset() will return FALSE if testing a variable that has been set to NULL. Also note that a NULL byte ("\0") is not equivalent to the PHP NULL constant. |
Сообщ.
#10
,
|
|
|
Наверно правильней будет так сделать
if (переменная == "") {тогда она пустая} else {содержит значение, может быть 0 } |
Сообщ.
#11
,
|
|
|
Цитата SergeS, 1.09.04, 19:53 Astaroth, может так !== А может и так... Я РНР в руки ужо лет сто в руки не брал, так что не помню точно, но способ отличать NULL от 0 есть точно. |
Сообщ.
#12
,
|
|
|
Ну вообщем я вставил в запрос IFNULL(поле,0) и делов..
Кстати, SergeS, ответь мне всё-таки на вопрос в #8 |
Сообщ.
#13
,
|
|
|
Song,
если ты про MySQL , и там про чтенме строк - то ета строка является FALSE если mysql_fetch... нечего читать |
Сообщ.
#14
,
|
|
|
Цитата Song, 2.09.04, 09:04 Тогда получается что строчка переменная = y бессмысленна? Получается, что да. Начальная инициализация переменной... |
Сообщ.
#15
,
|
|
|
Я почему спросил отдельно, потому как SergeS в свой new написал следующее:
$ftime = $ibforums->forum_read[ $fid ]; if ($ftime = $std->my_get_forumread($fid )) { $rtime = $ftime; } else { $rtime = 0; } |
Сообщ.
#16
,
|
|
|
Song,
ааа - ты про ето - 1. ой строки не помню ( не ты ли добавил ? ) 2. если такая запись есть - то приписываем её значение если нет то пишеи 0 |
Сообщ.
#17
,
|
|
|
Цитата SergeS, 3.09.04, 22:26 1. ой строки не помню ( не ты ли добавил ? ) ничего не прибавлял, всё твое. Цитата SergeS, 3.09.04, 22:26 2. если такая запись есть - то приписываем её значение если нет то пишеи 0 ок, согласен, но зачем два присвоения на ftime ? |
Сообщ.
#18
,
|
|
|
Song,
дак я точно не использовал эрреи - такчто ктото потом прикрутил |