【问题标题】:Why is if(empty(strlen(trim($_POST['name'])))) invalid? [duplicate]为什么 if(empty(strlen(trim($_POST['name'])))) 无效? [复制]
【发布时间】:2014-04-23 10:56:36
【问题描述】:

我有一个 if 语句检查字符串是否为空

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

给我这个错误:

致命错误: Can't use function return value in write context in C:\xampp\htdocs\requestaccess\index.php on line 51

【问题讨论】:

  • 你使用的是什么版本的 PHP?
  • 计数的空有什么意义?你的问题就在这里
  • @Fabio 我想修剪一个空格字符串,然后查找字符串长度是否等于零。如果是,则 $error_empty 设置为 true。
  • 如果trim 写了它的参数,你就有麻烦了。

标签: php


【解决方案1】:

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']) === '') ...

【讨论】:

    猜你喜欢
    • 2013-06-04
    • 1970-01-01
    • 1970-01-01
    • 2019-04-15
    • 2014-06-09
    • 2012-01-03
    • 2017-12-16
    • 1970-01-01
    • 2015-07-29
    相关资源
    最近更新 更多