PHP正在忽略var_dump(),die()等代码

Tia*_*nes 4 php

这是一种非常奇怪的情况,就像我一生中从未见过的那样。由于某种原因,PHP忽略了静态函数中的许多代码。

这是示例:

static function describe($tableName, $columns = '*') {
    var_dump($tableName);
    die();
    $md5 = ...code...
    if (!empty($content = Cache::get($md5))) {
        return unserialize($content);
    }
Run Code Online (Sandbox Code Playgroud)

我不断收到错误

Parse error: syntax error, unexpected '=', expecting ')'
Run Code Online (Sandbox Code Playgroud)

if (!empty($content = Cache::get($md5))) {
Run Code Online (Sandbox Code Playgroud)

是的,它可以识别类Cache及其功能。

谁能指导我?

Pup*_*pil 6

在PHP 5.5之前,empty()函数只能支持字符串。

提供给它的任何其他输入,例如:函数调用

if (empty(myfunction()) {
 // ...
}
Run Code Online (Sandbox Code Playgroud)

将导致解析错误。

根据文档:

注意:在PHP 5.5之前,empty()仅支持变量。其他任何情况都会导致解析错误。换句话说,以下内容将不起作用:empty(trim($ name))。而是使用trim($ name)== false。

更好的方法是,先获取$content变量,然后检查它是否不为空。

与其初始化并同时检查其空性,不如说是空的。

您可以将if语句分为两部分,如下所示:

if ($content = Cache::get($md5) && !empty($content)) {
 return unserialize($content);
}
Run Code Online (Sandbox Code Playgroud)