0

是否可以在 use 语句中使用变量?如何使用我用 use 语句定义的特征和其他文件实现版本控制?

<?php
namespace SomeNamespace;

$vers = '10'; 

use SomeNamespace2\someTrait_$vers;
use SomeNamespace3\someTrait_$vers;

我希望能够为所有使用语句分配单个版本。

4

2 回答 2

2

@Nick 的回答是一个不错的选择。但是class_alias可能更合适。(或者更糟,取决于您的情况或偏好......)类似:

class_alias("SomeNamespace2\\someTrait_$vers", 'SomeNamespace2\someTrait');

然后只需SomeNamespace2\someTrait在其余代码中引用即可。

于 2018-11-17T01:01:00.710 回答
0

尽管 PHP 不支持use语句中的变量,但您可以通过将use语句(和其他特定于版本的代码)放入一系列包含文件(每个版本一个)中,然后在require(or include) 语句中使用变量来包含你想要的文件。例如:

使用_10.php:

use SomeNamespace2\someTrait_10;
use SomeNamespace3\someTrait_10;

使用_11.php:

use SomeNamespace2\someTrait_11;
use SomeNamespace3\someTrait_11;

您的主要 PHP 代码:

$vers = 10;   // or 11, or any value for which you have created an include file
require_once "use_$vers.php";
于 2018-11-17T00:44:08.813 回答