好吧,我来自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);
}
我发布的问题是&=
看起来工作不正常。我需要使用另一个布尔运算符吗?
始终先阅读手册:
- http://php.net/manual/en/language.operators.bitwise.php
- http://php.net/manual/en/language.operators.logical.php
Bitwise operators!=逻辑运算符
我想你正在寻找这个:
//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);
你应该从教程、基本课程、基本文档开始,以避免出现这种问题。
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);
amp;是按位运算符。对于bloolean用途&;,像
`$correct = $correct && is_ok($name);`
因为
echo 1 & 2
给出0