Smarty, NULL и пустая строка.

hayk

Новичок
Smarty, NULL и пустая строка.

Столкнулся с такой вещью: smarty воспринимает пустую строку точно также как и NULL.
Пример:
{if $val != NULL }not null{else}null{/if}
Если $val - NULL или $val - '', то результатом будет строка "null"
Можно ли это как-то побороть?
 

Winer

Мимо проходил
!= смотрит на значение, тип не сравнивается, насколько я помню, и Null,0 и пустая строка в этом случае одно и тоже.
!== - проверяет на тождественность, не знаю, может ли смарти с ним работать.

-~{}~ 18.06.04 17:37:

точнее на не тождественность :)
 

tony2001

TeaM PHPClub
{if $val !== NULL }not null{else}null{/if}
при "==" пустая строка, ноль и NULL равны между собой.
 

hayk

Новичок
tony2001
Winer
Да, действительно так. Надо использовать !== и ===. Только в мануале по смарти разделе "if,elseif,else" об этом нет ни слова.
 

tony2001

TeaM PHPClub
hayk
логично.
причем тут смарти, если это синтаксис РНР ?

lucas
угу
 

hayk

Новичок
tony2001
Ну какая-то путаница получается. Я так понял что в том разделе описаны qualifier'ы поддерживаемые смарти.
 

tony2001

TeaM PHPClub
hayk
>Ну какая-то путаница получается.
>Я так понял что в том разделе описаны qualifier'ы поддерживаемые смарти.
и?
 

hayk

Новичок
tony2001
Путаница в мануале смарти.
Там явно не написано чьи это qualifier'ы, смарти или php.
Там же есть и eq и ==.
 

tony2001

TeaM PHPClub
hayk
ну причем тут Смарти вообще, если это синтаксис РНР ? =))
какая может быть путаница там, где это очевидно ? =))
 

hayk

Новичок
tony2001
Ну как причем? Я же в смарти условие проверяю.
Скажи, eq, ne, neq, gt - это синтаксис чего?
 

tony2001

TeaM PHPClub
hayk
"eq" все равно превращается в "==", в конце концов.
а "===", как ты догадался, так и остается "===".
 
Сверху