![](/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.