当我学习javascript时,书或技术文章作者强调了全局变量问题,也就是应该始终避免使用全局变量。我认为其中一个原因是为了避免命名冲突。我认为无论我们使用的是什么语言,命名冲突总是一个问题。
然而,当我阅读PHP书籍时,全局变量的使用并没有被特别提及或标记为不良实践。所以我要注意吗?
例如,我正在尝试修改Joomla中的一些PHP文件。如果我在模块的模板文件中编写自定义函数getJson(),如何知道其他组件没有在某个地方使用函数名?
发布于 2015-12-10 20:49:52
第一个问题是关于变量,第二个是关于函数名。
全局变量的使用是不好的吗?
是的,如果你使用了太多的变量,而失去了关于使用的概述!想想一个拥有20个编码器的程序员团队,在一个包含1000+文件的大型项目上。
不,如果你用全球智慧。就像大多数框架一样。
主题:面向对象编程( OOP )或不面向对象编程( OOP )
所以我要注意吗?
在您的例子中,使用Joomla时,您应该看看Joomla是如何使用全局vars的。也用这种方法。
在您的其他项目中,给它们一个自定义的使用,比如:全局vars仅用于类实例。
这都是关于你如何编码,更多的OOP或更多的程序,或所有的混淆.php是一个开放的大世界。
我如何知道其他组件没有在某个地方使用函数名?function_exists('getJson');;
无论如何,针对这个问题,php有名称空间。
namespace MySpace {
function getJson(){}
}
use MySpace\getJson as getJson;
getJson($args);你应该读一点关于它的文章。
如果我在模板文件中编写自定义函数getJson()
您可以使用匿名函数:
$getJson = function(){};而不是创建一个全局函数。如果该函数仅在此模板中使用!
希望这能帮点忙。
https://stackoverflow.com/questions/34211094
复制相似问题