在其他函数可访问的函数内部创建变量?

时间:2010-12-18 00:13:00

标签: php function variables scope

在函数内部我有一个$ connection var显然存储了我与mysql的连接, 如何从其他函数内部调用var来节省我必须将$ connection var粘贴到需要此var的每个函数内?

我试过全球无济于事。

非常感谢

4 个答案:

答案 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/

被盗