这是我一生中从未见过的非常奇怪的情况。
出于某种原因,PHP 忽略了静态函数中的大量代码。

这是示例:

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

我不断收到错误
Parse error: syntax error, unexpected '=', expecting ')'


if (!empty($content = Cache::get($md5))) {

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

任何人都可以指导我吗?

最佳答案

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

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

if (empty(myfunction()) {
 // ...
}

会导致解析错误。

As per documentation:



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

而不是同时初始化它并检查它的空性。

您可以将 if 语句分成两部分,如下所示:
if ($content = Cache::get($md5) && !empty($content)) {
 return unserialize($content);
}

10-06 05:34
查看更多