PHP可以使用名称空间(或其他任何内容)来包含两个相同名称的类

I have a class named 'Users' in /v1/users.php and another class named 'users' in /v2/users.php (v1 is a legacy API to our database). I'm trying to write migration code using both APIs.

Is there a way I can use both of these classes in a migration class? I unfortunately can't declare the namespaces in the users.php files themselves, but am wondering if there's some way I can encapsulate the include itself in a namespace? For example, in migrations.php:

<?php
namespace v1 {
require_once("v1/users.php");
}
namespace v2 {
require_once("v2/users.php");
}

class migration
{
    public function migrateUser($v1UserId)
    {
        $v1Users = new v1\Users;
        $v2Users = new v2\users;
        $v2Users->addUser($v1Users->getUser($v1UserId));
    }
}

?>

Along with Rocket Hazmat's comment, I'm pretty sure you need a global/blank namespace for the other code as well. Once you use the bracketed namespace { } syntax in a file, all code must be in a namespace:

namespace {
    class migration
    {
        public function migrateUser($v1UserId)
        {
            $v1Users = new \v1\Users;
            $v2Users = new \v2\users;
            $v2Users->addUser($v1Users->getUser($v1UserId));
        }
    }
}