Not NULL и пустое значение поля
поле varchar NOT NULL
Надо выводить только значение равное нулю и прятать пустое значение
условие
{if $char == 0 } $char.value {/if}
В результате все равно выводятся и нулевые и пустые значения, а как заставить игнорировать пустые значения?
Не могу понять
поле varchar NOT NULL
Надо выводить только значение равное нулю и прятать пустое значение
условие
{if $char == 0 } $char.value {/if}
В результате все равно выводятся и нулевые и пустые значения, а как заставить игнорировать пустые значения?
Блин — "База не знает равен ли null единице, т.к. null — это не определен."
{if $char === 0 || $char === '0' } {$char.value} {/if}
Сработало
Вот это тонкости — Спасибо FUZE!!!
загадка экранирования нуля кавычками не раскрыта
Это не экранирование. Это строка с символом 0, а без кавычек — число 0. Типы данных.загадка экранирования нуля кавычками не раскрыта
Следующие значения воспринимаются как пустые:
'' (пустая строка — две одинарные кавычки, между ними ничего нет)
0 (целое число)
0.0 (дробное число)
'0' (строка)
NULL
FALSE
array() (пустой массив)
$var; (переменная объявлена, но не имеет значения)
php.net/manual/ru/function.empty.php
Тройное равно ( === ) это строгое сравнение переменных, при котором проверяются и их типы (по типам ссылка выше).
7 == '7' // это правда
7 === '7' // это ложь
7 === 7 // это правда
0 == false // это правда
0 === false // ложь
Это не экранирование. Это строка с символом 0, а без кавычек — число 0. Типы данных.загадка экранирования нуля кавычками не раскрыта
Следующие значения воспринимаются как пустые:
'' (пустая строка — две одинарные кавычки, между ними ничего нет)
0 (целое число)
0.0 (дробное число)
'0' (строка)
NULL
FALSE
array() (пустой массив)
$var; (переменная объявлена, но не имеет значения)
php.net/manual/ru/function.empty.php
Тройное равно ( === ) это строгое сравнение переменных, при котором проверяются и их типы (по типам ссылка выше).
7 == '7' // это правда
7 === '7' // это ложь
7 === 7 // это правда
0 == false // это правда
0 === false // ложь
Спасибо :)
В моем случае работает и не строгое сравнение переменных
Как понял идет проверка на пустую строку
$char.value ==='0' вернет false (то есть ложь — значение не пустое)
$char.value =='0' вернет true (то есть правда — значение пустое)
но В моем случае работает и не строгое сравнение переменных $char.value =='0'