因此我创建了这两个类
//Quarter.php
namespace Resources;
class Quarter {
...
}
//Epoch.php
namespace Resources;
class Epoch {
public static function initFromType($value, $type) {
$class = "Quarter";
return new $class($value, $type);
}
}
现在这只是一个非常简化的版本,但足以说明我的问题。按照此处所示的方式,类将无法正常工作,因为它将找不到Quarter类。要使其正常工作,我可以将$class变量更改为
$class = "\Resources\Quarter";
我的问题是:既然这两个类已经在同一个命名空间中,为什么我在这里还需要使用命名空间呢?只有在将类名放入变量中时才需要命名空间,因此可以这样做:
public static function initFromType($value, $type) {
return new Quarter($value, $type);
}
这将没有问题。为什么会这样,有哪些我需要避免的潜在陷阱?