0

好的,我是命名空间的新手,这是场景......我有 2 个文件

库/class.mysql.inc.php

class MySQL{

}

类/class.mysql.inc.php

require_once('libs/class.mysql.inc.php'); 
interface MySQLTemplate{
}
class MySQLWrapper extends MySQL implements MySQLTemplate{
}

好的,这是我的问题。我如何能够将 MySQLWrapper 重命名为 MySQL?显然'class MySQL extends MySQL'不可能发生。在需要文件之前,我似乎也无法声明命名空间。(好吧,我可以,但它不接受命名空间)。我也不想碰 libs/class.mysql.inc.php 文件(如果有的话)。

有什么提示吗?提示?这里有可能吗?

4

2 回答 2

1

无论您需要在哪里引用,都需要带有关键字MySQLWrapper的此类:use

use MySQLWrapper as MySQL;

//do your stuff with MySQL as an alias
于 2012-11-09T12:40:17.420 回答
0

好的,看来您只能在文件中定义名称空间,任何包含都将被忽略。我通过在文件顶部声明一个随机命名空间来解决它(PHP 喜欢将它放在其他任何东西之前)。然后因为包含文件,所以 inlcude 类的命名空间是全局的。所以我让它工作:

库/class.mysql.inc.php

class MySQL{

}

类/class.mysql.inc.php

namespace Libs;
require_once('libs/class.mysql.inc.php'); 
namespace App;
interface MySQLTemplate{
}
class MySQL extends \MySQL implements MySQLTemplate{
}

希望这对其他人有帮助......我有一段时间摸不着头脑,因为我不了解它的行为。

于 2012-11-09T11:17:21.237 回答