如果 __autoload 中的文件有语法错误,则脚本将停止而不显示消息

Posted

技术标签:

【中文标题】如果 __autoload 中的文件有语法错误,则脚本将停止而不显示消息【英文标题】:If the file in __autoload has a Syntax Error, then the script stops without show a message 【发布时间】:2011-04-17 11:12:57 【问题描述】:

我为自动加载类定义了一个 __autoload 函数,如果该文件有语法错误,脚本会停止,只是停止......没有错误......

function __autoload( $var_class )

    require_once( "$var_class.php" );

echo "Before load...";
new ClassName();
echo "Hello world...";

输出:

加载前...

如何显示语法错误?

【问题讨论】:

ClassName.php 有语法错误... 看起来您回答了自己的问题。对于未来,您可以确保启用错误以查看它是什么:error_reporting(E_ALL) ; ini_set('display_errors', 1) 问题是......“如何显示 de SYNTAX ERROR?” ...正常流程,我启用了error_reporting,ini_set也是...... 那么 Fanis 已经回答了你的问题。 OK 这个例子有效,但在我的代码中不...我不知道... 【参考方案1】:

为我显示错误:

class ClassName

    public function __construct()
    
        $line = $error
        echo 'Contructor' . "\n";
    

输出:

Before load...
Parse error: syntax error, unexpected T_ECHO in ClassName.php on line 8

查看 Fanis 的评论。

【讨论】:

不起作用,我不知道发生了什么,我做了一个类似this question的示例,并显示了错误,但不在我的代码中...... 我不知道这有什么问题,但我解决了将Fani的指令放在自动加载函数中......为什么在全局范围内不起作用?

以上是关于如果 __autoload 中的文件有语法错误,则脚本将停止而不显示消息的主要内容,如果未能解决你的问题,请参考以下文章

php __autoload 在有命名空间的时候失效(使用的局限性)

spl_autoload_register与autoload的区别详解

类的自动加载:

PHP中spl_autoload_register函数的用法

在 Laravel 中配置 Autoloader.php [重复]

🐯 php项目中类的自动加载