Да, действительно, вы не можете переопределить псевдоним пространства имен в другом файле.
use
операторы только устанавливают псевдонимы.Они не загружают код или что-либо еще.
use Core\Models\Users;
...
public function login($email, $password) {
$user = Users::findByEmail($email);
}
Это в точности эквивалентно:
public function login($email, $password) {
$user = \Core\Models\Users::findByEmail($email);
}
И псевдонимы use
действительны только в пределах файла, в котором они написаныВы наверняка не сможете переопределить псевдонимы другого файла.В противном случае вы не могли бы доверять ни одному коду, который вы пишете в каком-либо файле, из-за потенциальной возможности столкновения имен, чего и пытаются избежать пространства имен.