0

ええと、私はJavaとしてコンパイルされた言語から来て、今私はいくつかの特定の分野でPHPを扱っているところです。今日は、有効な値を確認する方法を知るために「テストフォーム」を作成しましたが、少し問題があります。

ブール変数を使用して、評価する複数のフィールドがあると仮定します。次のようなことを行います。

//ASSUMING THAT ALL IS CORRECT
$correct =  true;

$correct &= is_ok($name);
$correct &= is_ok($last_name);
$correct &= is_ok($nickname);
$correct &= is_ok($best_friend);

if (!$correct) {
    //AT LEAST ONE FIELD IS INCOMPLETE
}
else
{
    // EVERYTHING IS OK
}

function is_ok($field){
    return !empty($field);
}

私が発行している問題は、&=正しく機能していないように見えることです。別のブール演算子を使用する必要がありますか?

4

3 に答える 3

3

常に最初にマニュアルを読んでください:

ビット演算子!=論理演算子

私はあなたがこれを探していると思います:

//ASSUMING THAT ALL IS CORRECT
$correct =  true;

$correct = $correct && is_ok($name);
$correct = $correct && is_ok($last_name);
$correct = $correct && is_ok($nickname);
$correct = $correct && is_ok($best_friend);

この種の質問を避けるために、フォームチュートリアル、基本レッスン、基本ドキュメントを開始する必要があります。

于 2012-08-25T18:04:05.540 に答える
1
if (is_ok($name) && is_ok($last_name) && is_ok($nickname) && is_ok($best_friend)) {
  echo "Good.";  
} else{
  echo "Bad.";
}

またはもっと簡単に

if (!empty($name) && !empty($last_name) && !empty($nickname) && !empty($best_friend)) {
  echo "Good.";  
} else{
  echo "Bad.";
}

あなたが本当にそれをあなたがそれを書きたいように書きたいのなら:

$correct = true;
$correct = $correct && is_ok($name);
$correct = $correct && is_ok($last_name);
$correct = $correct && is_ok($nickname);
$correct = $correct && is_ok($best_friend);
于 2012-08-25T18:05:43.370 に答える
0

&はビット演算子です。blooleanの使用&&のように

`$correct =  $correct && is_ok($name);`

なぜなら

echo 1 & 2 

0を与える

于 2012-08-25T18:05:41.360 に答える