【问题标题】:PHP conditional error testing for valuePHP条件错误测试值
【发布时间】: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


【解决方案1】:
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
}

【讨论】:

  • 谢谢。我看到的问题是当 var==1 时脚本没有退出条件。相反,它仍在继续,即使条件已经满足。
  • @user1968593:如果该变量设置为 1,则应设置页面值...如果您的函数不起作用,则必须是 var 未设置为 1 或函数 sl_redirecttourl($page );有问题...我们可以看看那个代码吗?
  • 啊,我误会了。谢谢。
  • 更准确地说,$var= $slcustom31 .... 而这反过来要么是空白,没有值,要么是 1。
  • 谢谢!既然 if (isset($slcustom29)) {$page="mydomain/members/".$slcustom29;} else {$page="mydomain/members/page_Beta.php";} 不起作用,我应该将其解释为 $slcustom29 没有价值?
【解决方案2】:

要检查变量是否有值,请使用:

empty($var);

如果它是“空的”,它将返回 TRUE,否则将返回 FALSE。 这被认为是空的:

  • “”(空字符串)
  • 0(0为整数)
  • 0.0(0 作为浮点数)
  • “0”(0作为字符串)
  • 错误
  • array()(一个空数组)
  • $var; (声明的变量,但没有值)

更多信息见:http://php.net/manual/en/function.empty.php

【讨论】:

    【解决方案3】:

    不,你想看看issetempty

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 2018-04-10
      • 2015-01-12
      • 1970-01-01
      • 2020-11-08
      • 2020-01-05
      • 2012-11-06
      相关资源
      最近更新 更多