我使用名称空间做过一些web。我有它在我的电脑上,我打算把它转移到使用php 5.2的免费主机上。php 5.2的语法高亮工具会将它们解释为错误。
php 5.2支持命名空间吗?
如果没有,有没有办法在对现有代码进行少量更改的情况下使用它们?
发布于 2011-06-25 03:59:34
5.3之前的版本不支持命名空间。不幸的是,没有一种方法可以适应5.2。
发布于 2011-06-25 04:23:00
命名空间仅在5.3版本中可用
至少在类的情况下,您可以使用class_exists函数来检查类是否已经在全局名称空间中使用类似的名称定义。与__autoload()函数结合使用时,您可以创建一个通用别名,并让系统检查以原始名称命名的类以及带有某种额外标识符的名称。我将以"ns“为例。
function __autoload($class){
try{
require_once('ns'.$class.'.php');
}catch(Exception $e){
echo 'The class is unavailable in pseudo-namespace as well as global';
}
}只需确保require路径指向您保存模型的位置。您也可以使用不同的文件夹,而不是别名。
这样,任何重复的类都可以放入独立于主执行的文件中,只有当它们不存在于全局中时才会包含这些文件。虽然这没有严格地解决必须物理重命名类的问题,但它将允许您将定义放在不同的目录中,以实现版本控制等目的。
发布于 2011-06-25 04:00:37
https://stackoverflow.com/questions/6473126
复制相似问题