2011-08-17 5 views
3

私はそれが私のPHPスクリプトに問題がある...PHP空の値

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

私はとNUBEだ!空のようにイムが何か間違ったことなら、私に知らせてください。

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

} 
else 
{ 

} 

これは、だから私は間違って何をやっているの文

他の真ん中にしている場合、私のコードが、何かありますか?

私の質問は何ですか? ああと

  • $が
  • は、すべての値

    であり、はい、これは誰かどうかを把握するためのスクリプトですrepassword

    • $ユーザ名
    • $メール
    • $パスワードフォームのすべてのテキストボックスに登録スクリプトを入力します。

    +0

    ユーザーがパスワードとして '0000000000000000'を使用しようとすると失敗します;) – knittl

    答えて

    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

    Documentation Section氏は述べています

    空()何かがパース エラーになりますよう変数のみをチェックします。つまり、次は動作しません: 空(trim($ name))。

    3

    emptyはその空虚のための変数を確認することができます。 $username or $email or …は、TRUEまたはFALSEのいずれかを評価するブール式です。必要なものではありません。のみ評価される変数

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

    式xまたはyまたはz上で動作しますので、変数ではありません

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

    空:あなたは複数にempty呼び出しを使用する必要があります。

    0

    empty()は1つの変数のみをチェックできるため、これは機能しません。

    それがうまくいっても、あなたは間違っています。このif文は、4つの変数のいずれかが空でないかどうかをチェックします。したがって、有効なコードであれば、変数が1つだけ定義されていてもtrueを返します。

    だから、このように変更します。

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

    あなたが複数の変数と関数を複数回呼び出すためのOR演算子を使用することはできません。あなたはすべての変数が空でないことを確認するには

    、これを使用する:

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

    あなたは1つの空の関数で複数のORのを持つことはできません。それはその引数が含まれているかどうかをチェックすることを意味する、

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

    empty()は、引数として渡された変数が空であると考えられているかどうかをチェックします -

    :あなたのコードは次のようにする必要があります
    1. ""(空文字列)
    2. 0(整数として0)
    3. 0.0(floatとして0)
    4. "0"(文字列として0)
    5. NULL
    6. FALSE
    7. アレイ()(空の配列)
    8. 変数$ VAR。 (変数は宣言されていますが、クラスに値はありません)

    コードでは、$username or $email or $password or $repasswordを引数として指定しています。これはブール式です。つまり、TRUEまたはFALSEのいずれかに評価されます。したがって、empty()への引数は変数ではなくブール値になります。これが原因でこのエラーが発生します。

    これらの変数がすべて空であるかどうかをチェックしたいと仮定しています。この場合、以下の方法でこれを行うことができます。 -

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