PHP 的 spl_autoload_register 方法一直不被调用,什么情况?

2017-04-10 19:28:04 +08:00
 buseni

define('BASEDIR', DIR); require_once BASEDIR . '/library/Load.php'; //$config = require_once "conf/config.php";//把文件读取到变量中 ini_set("include_path", ".:/usr/share/pear:/usr/share/php:/home/wwwroot/"); class LOAD { static function loadClass($class_name) { $filename = $class_name.".php"; echo $filename; if (is_file($filename)) echo BASEDIR.DIRECTORY_SEPARATOR.$filename; die(); return include_once BASEDIR.DIRECTORY_SEPARATOR.$filename; } } spl_autoload_register(array('LOAD', 'loadClass')); $server = trim($_SERVER['REQUEST_URI'], '/'); $path = explode('/', $server); switch (count($path)) { case 2: $className =DIRECTORY_SEPARATOR.'controller'.DIRECTORY_SEPARATOR. $path[0];//类名 break; } if (stripos($path[1], '?')) { $fun = substr($path[1], 0, stripos($path[1], '?'));//函数名称 } else { $fun = $path[1]; } $obj =new $className(); try { call_user_func(array($obj, $fun));//调用实例化之后对象的方法 } catch (Exception $e) { echo 'Caught exception: ', $e->getMessage(), "\n"; }

windows 下是正常的,但是 linux 下,今天我买了一个 vultr 的 2.5 美元的机器,环境装上了,结果不正常,总是报错 Fatal error: Uncaught Error: Class '/controller/Home' not found in /home/wwwroot/wei/index.php:39 Stack trace: #0 {main} thrown in /home/wwwroot/wei/index.php on line 39

感觉 spl_autoload_register 不被调用,什么情况呢?着急 今天问群友,这样告诉我的 spl_autoload_register 需要 spl 类库支持,这个类库默认是开启的

2566 次点击
所在节点    问与答
2 条回复
mx1700
2017-04-10 19:54:49 +08:00
手机上看代码太乱,不想看,感觉是文件大小写问题, linux 文件系统区分大小写
buseni
2017-04-10 22:43:56 +08:00
@mx1700 V2EX 贴一个代码都是这样,唉

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/353892

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX