【发布时间】:2014-12-15 20:50:21
【问题描述】:
在其他文件中(例如someusername\classes\MyClass),我有
<?php
namespace someusername;
class MyClass
{
static function Test()
{
echo "working";
}
}
?>
我偶然发现了一个烦人的小障碍:
<?php
$user = "someusername";
$class = "MyClass";
require_once "$user\\classes\\$class";
//This line should be the equivalent of 'use someusername as User;'
use $user as User; //Parse Error: syntax error, unexpected '$user'
$c = "User\\$class";
$UserSpecificClass = new $c();
?>
我可以通过以下方式绕过它,但是使用语句会使事情变得更好
<?php
$user = "someusername";
$class = "MyClass";
require_once "$user\\classes\\$class";
$c = "$user\\$class";
$UserSpecificClass = new $c();
?>
是否可以在 PHP 的use 语句中使用变量?还是用这种方法避免使用语句更好?
【问题讨论】:
-
如果不是缩短或重命名namespace+class,让代码更清晰,还有什么用呢?您的代码永远不会清晰,无论如何您都可以将整个命名空间+类保存在一个变量中。
标签: php class namespaces using