【发布时间】:2010-12-18 00:13:00
【问题描述】:
在函数内部,我有一个 $connection var,它显然存储了我与 mysql 的连接, 如何从其他函数中调用该 var 以节省我必须将 $connection var 粘贴到需要此 var 的每个函数中?
我尝试了全局无济于事。
非常感谢
【问题讨论】:
标签: php function variables scope
在函数内部,我有一个 $connection var,它显然存储了我与 mysql 的连接, 如何从其他函数中调用该 var 以节省我必须将 $connection var 粘贴到需要此 var 的每个函数中?
我尝试了全局无济于事。
非常感谢
【问题讨论】:
标签: php function variables scope
您可以使用旧的 global 关键字。
function a() {
global $connection;
}
或者你可以把它扔进$GLOBALS(这将帮助你把它从定义它的函数中取出)。
他们都不太漂亮。
或者您可以传入$connection 作为参数。
处理数据库连接的最常见方法是让其创建由单例模式处理,或者拥有一个带有 OO 的基类,该基类具有可用的 $this->db,您的所有其他类都可以从该基类继承。
【讨论】:
将连接作为参数传递给需要它的函数。它使您的代码保持清洁和可重用。
【讨论】:
另一种解决方案是使用类并将连接设为类变量。每次需要时您只需使用$this->connection,但如果您已经在大量文件中编写了大量代码,这并不是真正的解决方案。
【讨论】:
在函数外部声明变量,然后使用 global 关键字使其在您需要的每个函数内部可访问。
$globalName = "Zoe";
function sayHello() {
$localName = "Harry";
echo "Hello, $localName!";
global $globalName;
echo "Hello, $globalName!";
}
sayHello();
盗自http://www.elated.com/articles/php-variable-scope-all-you-need-to-know/
【讨论】: