是否可以在 use 语句中使用变量?如何使用我用 use 语句定义的特征和其他文件实现版本控制?
<?php
namespace SomeNamespace;
$vers = '10';
use SomeNamespace2\someTrait_$vers;
use SomeNamespace3\someTrait_$vers;
我希望能够为所有使用语句分配单个版本。
是否可以在 use 语句中使用变量?如何使用我用 use 语句定义的特征和其他文件实现版本控制?
<?php
namespace SomeNamespace;
$vers = '10';
use SomeNamespace2\someTrait_$vers;
use SomeNamespace3\someTrait_$vers;
我希望能够为所有使用语句分配单个版本。
@Nick 的回答是一个不错的选择。但是class_alias可能更合适。(或者更糟,取决于您的情况或偏好......)类似:
class_alias("SomeNamespace2\\someTrait_$vers", 'SomeNamespace2\someTrait');
然后只需SomeNamespace2\someTrait
在其余代码中引用即可。
尽管 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";