function foo () {
global $var;
// rest of code
}
在我的小型 PHP 项目中,我通常采用程序化方式。我通常有一个包含系统配置的变量,当我需要在函数中访问这个变量时,我会执行 global $var;
.
这是不好的做法吗?
最佳答案
当人们在其他语言中谈论全局变量时,它的含义与它在 PHP 中所做的不同。这是因为变量在 PHP 中并不是真正全局的。一个典型的 PHP 程序的范围是一个 HTTP 请求。 session 变量实际上比 PHP 的“全局”变量范围更广,因为它们通常包含许多 HTTP 请求。
通常(总是?)您可以像这样在 preg_replace_callback()
等方法中调用成员函数:
preg_replace_callback('!pattern!', array($obj, 'method'), $str);
见 callbacks了解更多。
关键是对象已经被绑定(bind)到 PHP 上,并且在某些方面会导致一些尴尬。
不要过分关注将不同语言的标准或结构应用于 PHP。另一个常见的陷阱是试图通过将对象模型粘贴到所有内容之上来将 PHP 转变为纯 OOP 语言。
与其他任何事物一样,使用“全局”变量、过程代码、特定框架和 OOP,因为它有意义、解决问题、减少您需要编写的代码量或使其更易于维护和理解,而不是因为你认为你应该这样做。
关于php - PHP中的全局变量被认为是不好的做法吗?如果是这样,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1557787/