php strlen函数和2个vars

时间:2009-08-12 22:30:49

标签: php

if (strlen($title) > 2 && ($msg) > 2 && ($email) > 2)) {
 //true
} else {
 //false
}

检查超过1 var的正确方法是什么?这不会有很多工作方式

4 个答案:

答案 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
}