簡體   English   中英

PHP require_once錯誤與相對路徑

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM