【问题标题】:function autoload class error on LAMP serverLAMP 服务器上的函数自动加载类错误
【发布时间】:2013-03-09 17:15:40
【问题描述】:

我在 EasyPHP 3.5.9 上开发了我的 php 软件,一切都很完美,现在我在 ubuntu 12.04 x64 上安装了 LAMP。 如果我尝试在 ubuntu 上上传我的软件,我会显示一个白页。 我查看了 apache 日志,发现了这个错误

“PHP 致命错误:在 /var/www/xxxx/index.php:7\n堆栈跟踪:\n#0 /var/www/ xxxx/index.php(11): __autoload('session')\n#1 {main}"

<?PHP
function __autoload($class_name) {
if(file_exists('class/class.' . $class_name . '.php')) {
    require_once('class/class.' . $class_name . '.php'); 

} else {
    throw new Exception("Unable to load $class_name.");
}
}
$ses = new Session();

Wuy 它不加载类? LAMP 的配置似乎是正确的。 我能忘记什么?我该如何解决? 谢谢

【问题讨论】:

  • 我需要看看你的课。
  • 你的类文件名是“class.Session.php”还是“class.session.php”?在某些系统中,它们可能是两个不同的文件。
  • 如果我设置require_once('class/class.session.php'); 顺利。我不明白为什么它没有自动加载。

标签: php linux ubuntu


【解决方案1】:

这是你可以做的调试:

  1. 尝试打印类名,看看是否将正确的类名传递给函数

    function __autoload($class_name) { echo $class_name;
    if(file_exists('class/class.' . $class_name . '.php')) {

  2. 正如 Ares 所评论的,请注意您并没有尝试打开 class.Session.php,而真实名称是 class.session.php,因为这在某些系统上有所不同。

  3. 尝试使用 trim 函数删除类名前后的空格。

    function __autoload($class_name) { echo $class_name; trim($class_name);
    if(file_exists('class/class.' . $class_name . '.php')) {

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-07
    • 1970-01-01
    • 2019-06-11
    • 2017-01-24
    • 2012-10-23
    • 2014-12-10
    • 2017-05-05
    相关资源
    最近更新 更多