【发布时间】:2012-12-25 14:01:25
【问题描述】:
$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);
谁能告诉我应该做些什么不同的事情?
谢谢!
【问题讨论】:
-
视情况而定。您是在尝试测试变量是否具有 any 值,还是仅等于 1?
-
isset()将确定变量是否正在存储值。如果你要检查是否有值,你至少应该检查$slcustom31 > 0 -
啊——这可能就是问题所在。我的意思是测试任何值,而不是 1。
-
如果
$var是3,那么显然3 != 1。所以一个很大的NO。此外,您可能希望使用&&代替AND和||或OR。 -
我试过这个变种,但没有成功: if ($slcustom29>0) {$page="mydomain.com/members/".$slcustom29;} if (isset($slcustom29)) {$page="mydomain.com/members/".$slcustom29; }
标签: php variables conditional evaluation