【问题标题】:PHP : How to "null" a class resultPHP:如何“空”一个类结果
【发布时间】:2020-02-07 07:35:37
【问题描述】:

我得到了一个看起来像这样的函数:

class ProcessFile {
    function Function1() {
        ...
    }
    function Function2() {
        ...
    }
    ...
}

仅当文件扩展名不是“pdf”时,我才想使用该功能:

if (substr(strrchr(strtolower($filename),'.'),1) != 'pdf') {
   $file = new ProcessFile($filename);
} else {
   $file = null; // Just a test
}

我担心的是,在页面的后面,我会在很多地方调用类似的函数:

if (!empty($file->Function1())) {
   $var = $file ->Function1();
}

这会引发错误:

PHP 致命错误:未捕获的错误:调用成员函数 Function1() on null

我想避免在第一个“if”测试中进行所有调用。如何在读取之前将 ProcessFille 的结果“清空”或检查成员函数是否存在?

【问题讨论】:

  • if ($file !== null)?

标签: php function class


【解决方案1】:

在 if 语句中使用 is_object()

if (is_object($file)) {
   $var = $file ->Function1();
}

【讨论】:

    【解决方案2】:

    您可以使用isset($file) 来检查$file 是否为空:

    if (isset($file)) {
       $var = $file ->Function1();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多