在函数内部我有一个$ connection var显然存储了我与mysql的连接, 如何从其他函数内部调用var来节省我必须将$ connection var粘贴到需要此var的每个函数内?
我试过全球无济于事。
非常感谢答案 0 :(得分:4)
您可以使用旧的global
关键字。
function a() {
global $connection;
}
或者你可以把它扔进$GLOBALS
(这会帮助你把它从它定义的函数中删除)。
它们都不太漂亮。
或者你可以传递$connection
作为参数。
处理数据库连接的最常用方法是使其创建由单例模式处理,或者使用具有$this->db
可用的OO的基类,所有其他类都可以继承。
答案 1 :(得分:0)
将连接作为参数传递给需要它的函数。它使您的代码保持清洁和可重复使用。
答案 2 :(得分:0)
另一种解决方案是使用类并使连接成为类变量。每次需要时都会使用$this->connection
,但如果您已经在很多文件中编写了大量代码,那么这不是一个真正的解决方案。
答案 3 :(得分:0)
在函数外部声明变量,然后使用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/
被盗