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

时间:2019-04-17 09:38:16

标签: php

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

有人可以引导我吗?

2 个答案:

答案 0 :(得分:6)

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

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

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

结果解析错误。

As per documentation:

  

注意:在PHP 5.5之前,empty()仅支持变量。还要别的吗   将导致解析错误。换句话说,以下内容不会   工作:空(修剪($名称))。而是使用trim($ name)== false。

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

与其初始化并同时检查其空性。

您可以将if语句分为两个部分:

if ($content = Cache::get($md5) && !empty($content)) {
 return unserialize($content);
}

答案 1 :(得分:3)

尝试一下

if (!empty($content) && $content = Cache::get($md5)) {
        return unserialize($content);
}

OR:为了易于阅读

if (!empty($content){
   if($content = Cache::get($md5)){
       return unserialize($content);
   }
}