【发布时间】:2011-11-19 03:50:52
【问题描述】:
我有一个文件可以将我的可重用函数集中到一个文件中 (functions.php)。在每个需要它的页面上都有include_once()'d。当我的自定义函数尝试访问它们自己范围之外的 MySQL 连接时,我收到错误消息。源码有点像这样:
<?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 的声明within 来获得成功的连接。
任何关于我如何解决这个问题或我在这里做错了什么的见解?
【问题讨论】: