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 回答