Проверка условных ошибок PHP на значение
Является ли $var==1 правильным синтаксисом для проверки, имеет ли $ var значение?
Я спрашиваю, потому что я получаю провал на простом условном.
Вот код, который, кажется, терпит неудачу:
if ($slcustom31==1) {$page="http://www.mydomain.com/members/page_Alpha.php";}
Я предполагаю, что с синтаксисом что-то не так, $var==1.
++++++++Вот все условия, если это проясняет ситуацию:
//condition 1
if ($slcustom31==1) {$page="http://www.mydomain.com/members/page_Alpha.php";}
//condition2
elseif ($slcustom31!=1 AND $slcustom29!="") {$page="http://www.mydomain.com/members/".$slcustom29;}
//condition3
else {$page="http://www.mydomain.com/members/page_Beta.php";}
sl_redirecttourl($page);
СПЕЦИФИЧЕСКИЙ СИМПТОМ: Сценарий игнорирует условие 1 и условие 2, по умолчанию - условие 3.
++++ А если это поможет, вот весь (короткий) скрипт:
$groupswithaccess="somegroup";
require_once("../slpw/sitelokpw.php");
require_once("../slpw/sitelokapi.php"); //gets value being tested by conditional
if ($slcustom31==1) {$page="http://www.mydomain.com/members/page_Alpha.php";}
elseif ($slcustom31!=1 AND $slcustom29!="") {$page="http://www.mydomain.com/members/".$slcustom29;}//not finished, but started
else {$page="http://www.mydomain.com/members/page_Beta.php";}
sl_redirecttourl($page);
Может кто-нибудь сказать мне, что я должен делать по-другому?
Спасибо!
3 ответа
Решение
if($var ==1){
//returns true only if var is 1
}
if(isset($var)){
//returns true if you currently have any value stored as the variable $var
}
Чтобы проверить, имеет ли переменная значение, используйте:
empty($var);
Если он "пуст", он вернет TRUE, а если нет - FALSE. Вот что считается пустым:
- "" (пустая строка)
- 0 (0 как целое число)
- 0.0 (0 как число с плавающей запятой)
- "0" (0 как строка)
- НОЛЬ
- ЛОЖНЫЙ
- array () (пустой массив)
- $ Var; (объявленная переменная, но без значения)
Для получения дополнительной информации см.: http://php.net/manual/en/function.empty.php