繁体   English   中英

PHP的strlen函数和2个变量

[英]php strlen function and 2 vars

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

检查1个以上var的正确方法是什么? 这是行不通的。

您需要注意的是,布尔运算符(例如&&)之间的所有内容都不相互关联。

例如: strlen($a) && $b

与以下内容不同:

strlen($a) && strlen($b)

与口语不同,您可以说“ a和b大于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);

您只需要在其他两个变量上调用strlen即可测试长度是否大于2。此外,最后一个括号也应删除。 像这样:

if (strlen($title) > 2 && strlen($msg) > 2 && strlen($email) > 2) {

为每个变量调用strlen怎么样?

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

如果要获取每个变量的长度,则应在每个变量上使用执行此操作的函数。

编辑:应在发布代码之前对其进行测试:您的代码中有一个不包含右括号的括号;-)

如果保留它,则会出现“解析”错误。

我认为您想这样做:

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
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM