Jassim Rahma Ответов: 2

Не удается установить значение false


Привет,

Как я могу установить значение false в PHP?

is_adoption-это мое значение, и оно может быть либо истинным, либо ложным, либо нулевым

У меня нет проблем с настройкой истинного принятия усино=1 в URL-адресе

но когда я устанавливаю его в adoption=0, я ожидаю, что он будет ложным, но он заканчивается нулем в моей базе данных

Что я уже пробовал:

Вот что я пытаюсь сделать:

if (!is_null($_GET["adoption"]) && !empty($_GET["adoption"])) $adoption = $_GET["adoption"]; else $adoption = NULL;

2 Ответов

Рейтинг:
2

Richard MacCutchan

Следующий простой тест показывает, что нулевое значение считается пустым:

$start = 0;
if (is_null($start)) print "null: " . $start;
if (empty($start)) print "empty: " . $start;


Jassim Rahma

тогда каково же решение, если я хочу, чтобы пусто было пусто, ноль был нулем, а единица была единицей?

Richard MacCutchan

Нет никакого "решения", вам нужно перепроектировать свой код, чтобы учесть то, что указывает нулевое значение.

Рейтинг:
1

Luc Pattyn

$adoption = NULL;
if (isset($_GET["adoption"])) $adoption = $_GET["adoption"];

:)


Jassim Rahma

Ваши решения имеют ту же проблему

Luc Pattyn

Мой подход верен.

У меня есть следующая страница:

в <html-код&ГТ;&ЛТ;глава&ГТ;&ЛТ;/головки&ГТ;&ЛТ;тело&ГТ;
<?php
$arg = NULL;
если (isset и (переменная$_GET["параметр"])) $параметр = параметр $_GET["арг"];
если ($arg===null) echo "arg отсутствует";
else echo "arg=$arg";
Эхо "<br>";
если ($arg) echo "arg ненулевой (это будет показано только для ненулевых ненулевых)";

?>
&ЛТ;/тело&ГТ;&ЛТ;/HTML и ГТ;

который вы можете попробовать на https://www.lucpattyn.com/test1.php
и https://www.lucpattyn.com/test1.php?arg=0
и https://www.lucpattyn.com/test1.php?arg=1

Он делает то, что должен делать. Я предполагаю, что вы выполняете плохие сравнения с вашей переменной. Прочтите PHP doc о том, как null, числа (нулевые и ненулевые) и другие данные преобразуются в true/false!