- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在使用 spl_autoload_register
为了加载类。
我有一个 index.php
文件,其中包含一个 init.php
文件。 spl_autoload_register
函数在init.php
文件中调用。
在 index.php
文件中,它正常工作:我可以创建类和东西,它们的名称已解析。
但后来,在 index.php
中,我包含了另一个文件 work.php
来完成一些特定的任务。
奇怪的是,在 work.php
中,找不到我正在使用的类。
如果我在work.php
中再次调用spl_autoload_register
,类就可以解析了。
真正奇怪的是这种行为并不一致:在我的测试服务器上,我不必复制 spl_autoload_register
调用,但在我的生产服务器上,这是强制性的。
我是否在 php.ini
中遗漏了一些选项?
编辑/更新:这是init.php
文件中的内容,以防万一:
<?php
function my_autoload($class){
include 'class/' . $class . '.class.php';
}
spl_autoload_register('my_autoload');
?>
还有我的 index.php :
<?php
require_once 'include/init.php';
$barcode = new Barcode();
// here is a bunch of test and stuff
include 'work.php';
?>
还有我的 work.php :
<?php
$myObj = new Barcode();
// more useles stuff
?>
条形码在 index.php 代码部分完美创建,但在 work.php 部分失败...
最佳答案
其实,我是个笨蛋。问题不在于包含路径等,而在于 apache 配置:MultiViews。
我的网站只有一个访问点:index.php。我使用 url 重写重定向它上面的所有内容。但是多亏了多 View 选项,如果 url 与文件同名,则 url 重写无法正常工作。
我的目录包含 index.php 和 work.php。
我的重写脚本是这样的:如果你点击 www.mywebsite.com/work,你将使用参数 url=work 继续 index.php。index.php 初始化所有内容,然后包含 work.php
但多亏了 MultiViews 选项,如果我正在访问 www.mywebsite.com/work,它会搜索文件,找到一个 work.php,然后直接调用它。含义:没有初始化,意思是:没有 spl_autoload_register。
感谢您的回答,抱歉。
关于php - spl_autoload_register 在包含的文件中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11117500/
我正在尝试利用 PHP 中的自动加载。我在不同的目录中有各种类,所以我引导自动加载如下: function autoload_services($class_name) { $file = '
我发现了几个与我类似的 SO 问题,但我正在努力寻找对我有帮助的答案,而且我真的很想知道自动加载命名空间中存在的类的最佳实践。 我的文件夹结构: root -- classes --- Users -
为什么会返回 fatal error :Class 'Mynamespace\String' not found in ...: set_include_path(get_include_path()
我有一个文件可以自动加载我的每个类。 这是它包含的内容: spl_autoload_register(function($class){ require_once 'classes/' . $
我正在尝试使用 spl_autoload_register 将实例化对象用作自动加载器。是否可以?我在几个地方看到人们使用类静态函数作为自动加载器,而不是对象。 例子: class loadFile{
我想关于 spl_autoload_register() 优于 autoload() 的优点,我想我缺少了一些东西。据我了解,spl_autoload_register() 的优点是它可以注册多次,然
我使用composer管理我的依赖项和类加载。该工具使用spl_autoload_register函数。 我想使用 PHP 扩展来提供一些与通过 Composer 定义的其他类相同的定义(名称、命名空
这段代码: 抛出这个错误: Fatal error: Uncaught exception 'LogicException' with message 'Function 'autoloader'
我让 spl_autoload_register 工作正常,但后来我决定添加一些命名空间以引入 PSR2 合规性,但似乎无法让它工作。 目录结构: -index.php -classes/ -Cl
我想在我正在开发的 wordpress 插件中通过 spl_autoload_register 使用类的动态加载,但问题是它不能干扰此功能的预先存在的实现。在我最初的尝试中: // register
我正在使用 spl_autoload_register为了加载类。 我有一个 index.php 文件,其中包含一个 init.php 文件。 spl_autoload_register函数在init
我在主目录中创建了 5 个文件夹,其中包含 5 个类(Ad_Class、Blocked_Class、Friend_Class、Image_Class、Profile_Class)。我还在提到的文件夹中
拥有多个spl_autoload_register的好处是什么 例子: spl_autoload_register('autoload_systems'); spl_autoload_register
class Manage { spl_autoload_register(function($class) { include $class . '.class.php'; }); } 假设我
这个问题在这里已经有了答案: 10年前关闭。 Possible Duplicate: unexpected T_FUNCTION with php 5.2.17 but fine on localho
use PHPMailer\PHPMailer\PHPMailer; require_once "PHPMailer/PHPMailer.php"; $mail = new PHPMailer(t
我的目录结构如下 > Root > -Admin // admin area > --index.php // admin landing page, it includes ../config.ph
我正在开发自定义框架。当我尝试动态化我的类(class)调用时遇到了一个问题。 这是我的文件的视觉效果: 所以我决定为每个文件夹(库、 Controller 和模型)创建一个不同的函数: functi
我一直在阅读关于 spl_autoload_register 函数作为 require、require_once、include 和 & 包含一次。尽管有很多关于如何实现这一点的讨论,但文档并不太详细
所以我之前已经在这里问过这个问题,但是提供的解决方案对我不起作用。这是我的设置: /mylib /Vendor/Module/MyClass.php /document_root in
我是一名优秀的程序员,十分优秀!