用户自动加载器包括 类
User autoloader to include classes
我有一个如下所示的目录:
在文件 inc/class/autoload.php
中,我编写了一个代码来自动包含所有 classes(Cart.class.php
和 Database.class.php
)。
autoload.php
<?php
spl_autoload_register('autoload');
function autoload($class){
require_once($class.'.php');
}
问题是,当我在 inc/templates/header.php
或 products/index.php
中包含文件 inc/class/autoload.php
时,class Cart.class.php
和 Database.class.php
不能被发现。
为了包含自动加载器,我使用:
require_once('../inc/class/Database.class.php');
在 products/index.php
require_once('../class/Database.class.php');
在 inc/templates/header.php
请帮我解决这个问题。
在自动加载中使用它也包括来自您的 autoload.php 所在位置的文件:
require_once(dirname(__FILE__) . "/{$class}.class.php");
这在 index.php
中只有一次
require_once('../inc/class/autload.php');
每个 PHP 脚本都在当前位置运行,因此包含的所有文件都具有相同的工作位置。因此,如果您调用 /products/index.php
,则工作文件夹为 /products
。使用 dirname(__FILE__)
可以从调用脚本的文件中获取当前文件夹。这里../inc
。有关更多信息,请查找:当前工作目录 - 如何更改文件夹 PHP? PHP.
中的绝对路径和相对路径
我有一个如下所示的目录:
在文件 inc/class/autoload.php
中,我编写了一个代码来自动包含所有 classes(Cart.class.php
和 Database.class.php
)。
autoload.php
<?php
spl_autoload_register('autoload');
function autoload($class){
require_once($class.'.php');
}
问题是,当我在 inc/templates/header.php
或 products/index.php
中包含文件 inc/class/autoload.php
时,class Cart.class.php
和 Database.class.php
不能被发现。
为了包含自动加载器,我使用:
require_once('../inc/class/Database.class.php');
在products/index.php
require_once('../class/Database.class.php');
在inc/templates/header.php
请帮我解决这个问题。
在自动加载中使用它也包括来自您的 autoload.php 所在位置的文件:
require_once(dirname(__FILE__) . "/{$class}.class.php");
这在 index.php
中只有一次require_once('../inc/class/autload.php');
每个 PHP 脚本都在当前位置运行,因此包含的所有文件都具有相同的工作位置。因此,如果您调用 /products/index.php
,则工作文件夹为 /products
。使用 dirname(__FILE__)
可以从调用脚本的文件中获取当前文件夹。这里../inc
。有关更多信息,请查找:当前工作目录 - 如何更改文件夹 PHP? PHP.