首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP Global Global

PHP Global Global
EN

Stack Overflow用户
提问于 2015-12-10 20:26:43
回答 1查看 86关注 0票数 0

当我学习javascript时,书或技术文章作者强调了全局变量问题,也就是应该始终避免使用全局变量。我认为其中一个原因是为了避免命名冲突。我认为无论我们使用的是什么语言,命名冲突总是一个问题。

然而,当我阅读PHP书籍时,全局变量的使用并没有被特别提及或标记为不良实践。所以我要注意吗?

例如,我正在尝试修改Joomla中的一些PHP文件。如果我在模块的模板文件中编写自定义函数getJson(),如何知道其他组件没有在某个地方使用函数名?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-10 20:49:52

第一个问题是关于变量,第二个是关于函数名。

全局变量的使用是不好的吗?

是的,如果你使用了太多的变量,而失去了关于使用的概述!想想一个拥有20个编码器的程序员团队,在一个包含1000+文件的大型项目上。

不,如果你用全球智慧。就像大多数框架一样。

主题:面向对象编程( OOP )或不面向对象编程( OOP )

所以我要注意吗?

在您的例子中,使用Joomla时,您应该看看Joomla是如何使用全局vars的。也用这种方法。

在您的其他项目中,给它们一个自定义的使用,比如:全局vars仅用于类实例。

这都是关于你如何编码,更多的OOP或更多的程序,或所有的混淆.php是一个开放的大世界。

我如何知道其他组件没有在某个地方使用函数名?function_exists('getJson');;

无论如何,针对这个问题,php有名称空间。

代码语言:javascript
复制
namespace MySpace {
 function getJson(){}
}
use MySpace\getJson as getJson;

getJson($args);

你应该读一点关于它的文章。

如果我在模板文件中编写自定义函数getJson()

您可以使用匿名函数:

代码语言:javascript
复制
$getJson = function(){};

而不是创建一个全局函数。如果该函数仅在此模板中使用!

希望这能帮点忙。

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

https://stackoverflow.com/questions/34211094

复制
相关文章

相似问题

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