【问题标题】:PHP Autoload - File Found - Class Fatal ErrorPHP 自动加载 - 找到文件 - 类致命错误
【发布时间】:2013-10-18 03:46:50
【问题描述】:

我有一个检查用户登录状态的加载功能。这是一小部分代码...

//
// user is logged in, get user info
$user = Model\User::getByKey($_COOKIE['ukey']);
if($user->field('id') >= 1 || !isset($status)) {
    //
    // establish google connection
    Classes\Google\Google::construct($user->field('id'), $user->field('ga_account'));

...

我有一个 __autoload 函数,它可以完美地找到文件的路径。但是,我收到一个致命错误,因为找不到“\Classes\Google\Google”类。

new Google() ... 位于 /classes/google/google.class.php。文件在那里,自动加载函数有正确的文件路径,但为什么找不到类?

我在这个特定的 Google() 类文件上没有任何命名空间。这都是定制的,不是第三方框架。

【问题讨论】:

    标签: php class oop namespaces autoload


    【解决方案1】:

    1- 使用 class_exists 确保类已加载。 2-如果类没有加载,在 google.class.php 中做一个死,所以你会知道文件加载与否。 3-如果加载了类,请在此处创建一个新对象。测试一下,你可以发现类定义是真是假。

    【讨论】:

    • 我正在使用名为 __autoload 的 php 函数。 php.net/manual/en/function.autoload.php 所以这个函数找到了我的 google.class.php 文件,用 require_once 加载它,但是我的脚本在尝试调用 Google() 时失败了。
    猜你喜欢
    • 2015-07-20
    • 2016-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    • 2017-02-03
    • 2017-12-26
    • 1970-01-01
    • 2015-03-20
    相关资源
    最近更新 更多