为什么if(空(strlen(trim($ _ POST [' name']))))无效?

时间:2014-03-18 00:02:57

标签: php

我有if语句检查以查看字符串是否为空

if(empty(strlen(trim($_POST['name'])))){
    $error_empty = true;
}

给了我这个错误:

  

致命错误:第51行 C:\ xampp \ htdocs \ requestaccess \ index.php 中的写入上下文中无法使用函数返回值

1 个答案:

答案 0 :(得分:4)

empty不是一个功能 - 它是一个"语言结构" PHP 5.5之前的版本只能用于评估变量,而不能用于任意表达式的结果。

如果你想以这种方式使用empty这是无意义的),你必须将结果存储在一个中间变量中:

$var = strlen(trim($_POST['name']));
if(empty($var)) ...

但是你不需要做这样的事情:strlen将始终返回一个整数,因此empty将有效地减少为检查零。你不需要empty;零自动转换为布尔false,因此更合理的选项是

if(!strlen(trim($_POST['name']))) ...

或等效的

if(trim($_POST['name']) === '') ...