![](/img/trans.png)
[英]PHP - with require_once/include/require, the path is relative to what?
[英]PHP require_once error with relative path
我想在phpunit中測試我的php應用程序。 我的問題是require_once找不到我要測試的文件。 我收到此錯誤:
Warning:
require_once(C:\MyProject\phpunit-tesztek\include/../include/form.php):
failed to open stream: No such file or directory in
C:\MyProject\phpunit-tesztek\include\FormTest.php on line 4
所以它搜索include /../ include / form.php中的form.php文件出了什么問題。
我使用以下代碼:
require_once 'PHPUnit/Autoload.php';
require_once(__DIR__.'/../include/form.php');
測試文件位於C:\\ MyProject \\ phpunit-tesztek \\ include \\ FormTest.php中
我要測試的文件位於:C:\\ MyProject \\ include \\ form.php
問題是什么?
問題是相對路徑。 __DIR__
使用文件所在的目錄,沒有結尾的分隔符。 然后,您將使用相對路徑( /../
)更改路徑以進入一個目錄。
請參見手冊條目-> __DIR__
PHP手冊
__DIR__ will return C:\MyProject\phpunit-tesztek\include
您正在尋找使用C:\\MyProject\\include\\
路徑
__DIR__ . '/../../include/Form.php';
我通常自己使用dirname(__FILE__)
,因為它獲取源代碼文件的當前目錄(絕對目錄),從而允許我的相對路徑從該位置移動。
嘗試刪除../
require_once(DIR.'include/form.php');
使用魔術常數DIR :
require_once(__DIR__ . '/../include/form.php');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.