我有这样的文件结构:
Class (folder):
- User.php
- Rule.php
Scripts (folder):
- user.php (in lowercase)
- otherscript.php
index.php
namespace My\Namespace;
require_once 'Gender.php';
require_once 'User.php';
class Rule
{
...
namespace My\Namespace;
require_once 'Gender.php';
class User {
...
在Rule类中,我使用包含User类(require_once'User.php')的'require_once',问题是当我在'otherscript.php'中包含de Rule类时,它包含了我两个(脚本/ user.php和class / User.php)。我怎么能避免这个?
答案 0 :(得分:3)
您可以require_once
元素相对于自身,而不是当前工作目录可能是:
require_once __DIR__.'/Gender.php';
require_once __DIR__.'/User.php';
...但是最好只定义一个自动加载器(使用SPL自动加载器而不是旧的__autoload
函数)来处理这个问题,从而消除了对大多数include / require语句的需求对于课程。
答案 1 :(得分:0)
我通常会从项目根目录向上包含完整路径以避免这种情况。为什么不这样做:
require_once('Class/User.php');
这是更具体的,可以解决PHP需要做的猜测工作,以找出你的意思。