strip_tags()在写入时给出"不能在写入上下文中使用函数返回值"

use*_*841 1 php strip-tags

Can't use function return value in write context在尝试empty(strip_tags($string))使用三元语句中的条件作为赋值时,我得到了错误.所以为了测试,我摆脱了任务和三元语句.但是,当它显然不在写入上下文中时,我仍然会收到此错误.

想想看,我不确定是什么write context意思 - 我认为这与作业有关,但我不能说我肯定知道.

为什么这不能像我认为的那样工作?这对我来说似乎很直截了当.我错过了什么?

$ cat test.php
<?

$string = "<br/>";

if ( empty(strip_tags($string)) ) {
  echo "It's empty.\n";
} else {
  echo "It's not empty.\n";
}

$ php test.php
PHP Fatal error:  Can't use function return value in write context in test.php on line 5
Run Code Online (Sandbox Code Playgroud)

Mic*_*ski 5

empty()要求你对变量进行操作,而不是函数的输出.而是将输出存储strip_tags()到变量中.

$stripped = strip_tags($string);
if ( empty($stripped) ) {
  echo "It's empty.\n";
} else {
  echo "It's not empty.\n";
}
Run Code Online (Sandbox Code Playgroud)

这在empty()文档中解释:

注意: empty()只检查变量,否则会导致解析错误.换句话说,以下方法不起作用:empty(trim($name)).