if (strlen($title) > 2 && ($msg) > 2 && ($email) > 2)) {
//true
} else {
//false
}
检查超过1 var的正确方法是什么?这不会有很多工作方式
答案 0 :(得分:4)
你必须注意的是,布尔运算符(例如:&&)之间的所有内容都与另一个不相关。
例如:strlen($a) && $b
与:
不同strlen($a) && strlen($b)
与口语不同,你可以说“a和b大于2”,你必须把它编程为“a大于2,b大于2”
即:
if (strlen($title) > 2 && strlen($msg) > 2 && strlen($email) > 2)
如果你想要一个可重用的函数来检查长度,并且采用任意数量的参数,那么这样就可以了:
function validateLength() {
// get all passed in arguments
$args = func_get_args();
// get the first argument as the length
$len = array_shift($args);
foreach($args as $arg) {
if (strlen($arg) < $len) return false;
}
return true;
}
用法:
$valid = validateLength(2, $title, $msg, $email);
答案 1 :(得分:1)
你只需要在其他两个变量上调用strlen来测试测试的长度是&gt; 2.此外,应删除最后一个括号。像这样:
if (strlen($title) > 2 && strlen($msg) > 2 && strlen($email) > 2) {
答案 2 :(得分:0)
如何为每个变量调用strlen?
if (strlen($title) > 2 && strlen($msg) > 2 && strlen($email) > 2) {
//true
} else {
//false
}
如果你想获得每个变量的长度,你应该在每个变量上使用执行此操作的函数。
编辑:应该在发布代码之前对代码进行测试:代码中有一个不属于的右括号; - )
如果你保留它,你将得到一个Parse错误。
答案 3 :(得分:0)
我想你想这样做:
if (strlen($title) > 2 && strlen($msg) > 2 && strlen($email) > 2) {
//true
} else {
//false
}
调用函数时,需要在函数名后面的括号中指定函数名,然后指定该函数的参数。如果您要使用的函数不接受可变数量的参数(例如strlen
),则必须多次调用该函数,对于您拥有的每个变量一次。
在这种情况下,通常最好将这种东西封装在自己的函数中,如下所示:
function isValid($title, $msg, $email) {
return
strlen($title) > 2 &&
strlen($msg) > 2 &&
strlen($email) > 2;
}
然后你会改变你的if
语句以使用这样的新函数:
if (isValid($title, $msg, $email)) {
//true
} else {
//false
}