Использование пространств имен с классами, созданными из переменной
Итак, я создал эти два класса
//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);
}
будет работать без проблем. Почему это так и есть ли здесь потенциальные ловушки, которых мне нужно избегать?