php空值

时间:2011-08-17 07:10:26

标签: php

我的php脚本有问题......

 Parse error: syntax error, unexpected T_LOGICAL_OR, expecting ')' in C:\wamp\www\register.php on line 34

我是个笨蛋!空,所以如果我做错了,请告诉我。

if (!empty($username or $email or $password or $repassword)) 
{

}
else
{

}

这是我的代码,但是在else和if语句

的中间

那么我做错了什么?

我的问题是我做错了什么? 哦,

  • $ username
  • $电子邮件
  • $密码
  • $确认密码

都是值

并且这是一个脚本,用于确定是否有人填写了表单中的所有文本框以供注册脚本使用。

8 个答案:

答案 0 :(得分:3)

Documentation Section

  

empty()仅检查变量,因为其他任何内容都会导致解析   错误。换句话说,以下内容不起作用:   空(修整($名))。

答案 1 :(得分:3)

empty只能检查变量的空虚。 $username or $email or …是一个布尔表达式,其计算结果为TRUE或FALSE - 不是您想要的。您必须使用多个empty来电:

if (!(empty($username) or empty($email) or empty($password) or empty($repassword))) {
  // all set!
}

答案 2 :(得分:2)

听起来你想要这些内容......

if (!empty($username) && !empty($email) && !empty($password) && !empty($repassword)) 
{
    // none of the values are empty
}
else
{
    // at least one of the values is empty
}

答案 3 :(得分:2)

empty()将检查作为参数传递的变量是否为空,这意味着它将检查其参数是否包含 -

  1. “”(空字符串)
  2. 0(0为整数)
  3. 0.0(0作为浮动)
  4. “0”(0作为字符串)
  5. NULL
  6. FALSE
  7. array()(空数组)
  8. var $ var; (声明的变量,但在类中没有值)
  9. 在您的代码中,您提供$username or $email or $password or $repassword作为其参数。这是一个布尔表达式,意味着它将评估为TRUEFALSE。所以empty()的参数将是一个布尔值,而不是一个变量。这就是您收到此错误的原因。

    我假设您要检查所有这些变量是否为空。如果是这种情况,那么您可以通过以下方式执行此操作 -

    if( !empty($username) or 
        !empty($email) or 
        !empty($password) or 
        !empty($repassword))
    {
        ..........
    }
    else
    {
        ........
    }
    

答案 4 :(得分:1)

您不能使用OR运算符多次使用多个变量调用函数。

如果您想确保所有变量都不为空,请使用:

if ( ! (empty($username) ||  
        empty($email)    ||
        empty($password) || 
        empty($repassword)
       )
   ) 

答案 5 :(得分:0)

空只适用于变量

http://php.net/manual/en/function.empty.php

将评估表达式x或y或z,因此不会是变量。

答案 6 :(得分:0)

这不起作用,因为empty()只能检查单个变量。

即使它确实有效,你做错了,这个if语句会检查四个变量中的任何一个是否为空。因此 - 如果它是有效的代码 - 即使只定义了一个变量,它也会返回true。

所以改成它:

if (!empty($username) and !empty($email) and !empty($password) and !empty($repassword)) 

答案 7 :(得分:0)

在一个空函数中不能有多个OR。你的代码必须是这样的:

if (!empty($strValue1) OR !empty($strValue2) OR !empty($strValue3)) {
   // code
} else {
   // other code
}