这是一种非常奇怪的情况,就像我一生中从未见过的那样。由于某种原因,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及其功能。
谁能指导我?
在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)