首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php 5.2中的命名空间

php 5.2中的命名空间
EN

Stack Overflow用户
提问于 2011-06-25 03:58:03
回答 5查看 19.7K关注 0票数 12

我使用名称空间做过一些web。我有它在我的电脑上,我打算把它转移到使用php 5.2的免费主机上。php 5.2的语法高亮工具会将它们解释为错误。

php 5.2支持命名空间吗?

如果没有,有没有办法在对现有代码进行少量更改的情况下使用它们?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-06-25 03:59:34

5.3之前的版本不支持命名空间。不幸的是,没有一种方法可以适应5.2。

票数 28
EN

Stack Overflow用户

发布于 2011-06-25 04:23:00

命名空间仅在5.3版本中可用

至少在类的情况下,您可以使用class_exists函数来检查类是否已经在全局名称空间中使用类似的名称定义。与__autoload()函数结合使用时,您可以创建一个通用别名,并让系统检查以原始名称命名的类以及带有某种额外标识符的名称。我将以"ns“为例。

代码语言:javascript
复制
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路径指向您保存模型的位置。您也可以使用不同的文件夹,而不是别名。

这样,任何重复的类都可以放入独立于主执行的文件中,只有当它们不存在于全局中时才会包含这些文件。虽然这没有严格地解决必须物理重命名类的问题,但它将允许您将定义放在不同的目录中,以实现版本控制等目的。

票数 8
EN

Stack Overflow用户

发布于 2011-06-25 04:00:37

从PHP5.3.0开始,

名称空间在PHP中可用。

来源:http://www.php.net/manual/en/language.namespaces.rationale.php

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6473126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档