1

所以,我的问题如下。当我通过网络浏览器加载页面时,此代码工作正常。但是当我像这样从命令行运行脚本时:“php script.php”它会爆炸。

script.php 是:

<?php
include_once('class.WebsiteScraper.php');
$ws = new WebsiteScraper();
$ws->test();
...
?>

class.WebsiteScraper.php 是:

<?php
echo 'test';
class WebsiteScraper {
    public function test() {
        echo 'test2';
    }
}
?>

这将返回错误:

PHP 致命错误:调用未定义的方法 WebsiteScraper::test() in ... 第 4 行

只有在通过命令行调用时才会发生这种情况。另一件事要注意,当我附加一个

error_log('hey there');

对于 script.php,它将错误抛出到标准输出,而不是在我的错误日志中。但是,当从 Web 浏览器调用时,它会将其放入错误日志中。有任何想法吗?

4

1 回答 1

1

使用命令行选项 --ini检查命令行是否加载与 apache 相同的配置文件:

php --ini

您也可以调用phpinfo().

似乎您的文件未包含在内 - 可能是由于包含路径。

编辑:

尝试添加

error_reporting(E_ALL);
于 2009-08-30T21:25:49.770 回答