繁体   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