gpt4 book ai didi

带有命名空间的 PHP 包含文件

转载 作者:行者123 更新时间:2023-12-04 16:52:11 25 4
gpt4 key购买 nike

刚刚开始使用 PHPUnit 框架,我正在尝试将其合并到现有代码中。

假设我是一个类(class) Math我把它写成如下,

<?php

/**
*
* Date: 19/12/2017
* Time: 16:22
*/

include_once 'include/testing_namespace.php';

class Math extends TestCase {

function isEven($x) {
if ($this->assertInternalType(IsType::TYPE_NUMERIC)) {
if ($x % 2 == 0) {
return true;
} else {
return false;
}
}
}

function isOdd($y) {
if ($this->assertInternalType(IsType::TYPE_NUMERIC)) {
if ($y % 2 >= 1) {
return true;
} else {
return false;
}
}
}

}

我有一个 php 文件 include/testing_namespace.php像这样,
<?php

namespace testing;

use PHPUnit\Util\PHP;
use PHPUnit\Framework\Constraint;
use PHPUnit\Framework\Constraint\IsType;
use PHPUnit\Framework\TestCase;
use PHPUnit\Framework\Assert;

$path = $_SERVER['APPL_PHYSICAL_PATH'];

// class includes, may need to branch these off into separate include files
include_once $path . '\vendor\phpunit\phpunit\src\Framework\Assert\Functions.php';
include_once $path . '\vendor\phpunit\phpunit\src\Framework\TestCase.php';
include_once $path . 'vendor\phpunit\phpunit\src\Framework\Constraint\IsEqual.php';
include_once $path . 'vendor\phpunit\phpunit\src\Framework\Constraint\IsFalse.php';
include_once $path . 'vendor\phpunit\phpunit\src\Framework\Constraint\IsEmpty.php';
include_once $path . 'vendor\phpunit\phpunit\src\Framework\Constraint\IsNull.php';

?>

假设我像这样测试,
$m = new testing\Math();

$integer1 = 8;

var_dump($m->isEven($integer1));
die();

(这似乎工作得很好一段时间)

但是假设我正在测试的文件有一个声明的函数,也称为 isEven它不在命名空间中,但也包含在文件中。

比方说 oldfuncs/OldMath.php还有一个 isEven()具有相同名称的函数。

第一个问题是,我在这里正确使用命名空间吗?我还可以包含一个带有命名空间声明的文件,这会将包含它的文件放入该命名空间吗?

最佳答案

意识到我试图在同一个文件中使用两个命名空间,主要是通过尝试 use PHPUnit\Framework\并且有一个直接包含 PHPUnit 函数的命名空间。

关于带有命名空间的 PHP 包含文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47893558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com