我想阅读一个类中的函数

时间:2019-04-19 03:07:54

标签: php

我不理解附加内容。 (php7.x)

  

[2019年4月19日星期五02:48:49.446162] [proxy_fcgi:error] [pid 2750]   [客户端xxx.xxx.84.89:48694] AH01071:收到错误的PHP消息:PHP   致命错误:未捕获的LogicException:函数   找不到'Core \ OM \ CORE :: autoload'(未找到类'Core \ OM \ CORE'   找到)在/var/www/xxxx/xxxx/web8/web/client/index.php:29\nStack   跟踪:\ n#0 /var/www/xxxx/xxxx/web8/web/client/index.php(29):   spl_autoload_register('ClicShopping \\ OM ...')\ n#1 {main} \ n被抛出   /var/www/xxxx/xxxx/web8/web/client/index.php,第29行

index.php

define('BASE_DIR', __DIR__ . '/shop/includes/Core/');

require(BASE_DIR . 'OM/CORE.php');

spl_autoload_register('Core\OM\CORE::autoload');

此功能似乎有问题:spl_autoload_register

我尝试了不同的方法,但始终会给出相同的错误。 喜欢,

spl_autoload_register(['\\Core\\OM\\CORE', 'autoload']);
spl_autoload_register('Core\OM\CORE::autoload')

您有类似的问题吗?

var_dump(is_file(BASE_DIR . 'OM/CORE.php')); ==> true

我不明白为什么它不希望使用自动加载功能,并且会产生此错误。就像CORE.php未被读取并且不存在。

我试图将var_dump('test')exit放在文件CORE.php的顶部,但是没有消息。 关于生成的日志,与上面的相同。

chmod在644上。

我不知道如何解决此问题。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您正在尝试加载不存在的内容,请回显路径: DIR 。 '/ shop / includes / Core /到浏览器主体,在此位置您需要 OM / CORE.php,因此它试图获取驻留在以下位置的CORE.php文件:    __ DIR__。 '/shop/includes/Core/OM/CORE.php

自动加载功能的目的是包括PHP类文件,因此在您的网站中,当您要启动类对象时,首先需要包括PHP类 文件。如果有很多课程怎么办?

许多编写面向对象应用程序的开发人员会为每个类定义创建一个PHP源文件。最大的麻烦之一是必须在每个脚本的开头写一长串所需的清单(每个类一个)。

在PHP 5中,这不再是必需的。 spl_autoload_register()函数注册任意数量的自动加载器,从而允许在当前未定义的类和接口自动加载。通过注册自动加载器,PHP将有最后的机会在其因错误而失败之前加载类或接口。

相关问题