我有一个文件将我的可重用函数集中到一个文件中(functions.php
)。它在每个需要它的页面上都是include_once()
'd。当我的自定义函数试图访问自己范围之外的MySQL连接时,出现错误。来源有点像这样:PHP函数的范围
<?php
// functions.php
$connect = mysql_connect("localhost", "user", "pass") or die("MySQL said: ".mysql_error());
mysql_select_db("database", $connect) or die("MySQL said: ".mysql_error()); // no error
/* ... */
function getmotd($user) {
$query = "SELECT cid FROM `users`
WHERE id = ".$user;
$query = mysql_query($query, $connect); // error occurs here, $connect is not a valid MySQL link-resource
/* ... */
}
?>
为什么我的函数访问变量不能在其范围之上声明?我可以通过复制$connect
的声明在之内获得成功的连接功能。
任何洞察到我如何解决这个问题或我在这里做错了什么?
完美!非常感谢。答案将在8分钟后被接受。 – esqew
+1正确的答案。你不能没有'全球' –