要求一次失败的相对路径



我的项目中有以下文件结构:

+ server
+ api
+ product
- get.php
+ database
- product.php
+ model
- product.php
+ service
- product.php
+ utilities
- controller.php
- database.php

然后在我的server/api/product/get.php中,我有以下行:

require_once("../../service/product.php");
require_once("../../utilities/controller.php");

我相信这是正确加载服务,因为当我使用失眠来达到端点时,我在server/api/service/product.php文件中得到这个错误:

警告:require_once(../model/product.php): failed to open stream: No在C:全路径删除serverserviceproduct.php在第2行

致命错误:require_once(): Failed open required". ./模型/product.php"(include_path = C: xampp php 梨的)

在我的server/service/product.php文件中,我有以下内容:

require_once("../model/product.php");
require_once("../database/product.php");

在第一个require_once上失败。

所以我的问题是为什么我的控制器层中的相对路径工作,但服务层中的相对路径失败?

您可以使用__DIR__魔术常量作为替代方法,根据该常量给出的文档:'文件的目录。如果在包含中使用,被包含文件的目录将返回'。通过相对路径减少错误的可能性。

的例子:

require_once(__DIR__ . "/../../service/product.php");

使用include和require时不要带__DIR__。开始于的相对路径。或. .以当前目录为基础。当前工作目录取决于各种设置。__DIR__总是文件本身所在的目录。

For包含服务器/服务/product.php从文件中服务器/api/产品/get.php你可以这样做:

require_once __DIR__."/../../service/product.php";

最新更新