所以我创建了这两个类
//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);
}
将毫无问题地工作。为什么会这样?这里有什么我需要避免的潜在陷阱吗?