我有一个 PHP 数据库连接,在访问时可以完美运行,例如:
$con = mysqli_connect("localhost","username","password","database");
$result = mysqli_query($con, $query);
我还可以通过将其作为参数传递来在函数中访问它:
function test($con, $args) {
$query10 = "select name from table where id = '$args[0]'";
$result10 = mysqli_query($con, $query10);
}
test($con, array('value1','value2'));
但是,当我尝试从另一个函数调用的函数访问连接时:
mainFunction() {
test($con, array('value1','value2'));
}
我得到“faultCode0faultStringWarning:mysqli_query() 期望参数 1 为 mysqli,给定 null”。
将变量传递给 mainFunction 然后传递给第二个函数是可行的,但它会创建带有太多参数的非常不可读的代码,因为这同样适用于所有其他变量。
所以我尝试使用全局变量,但由于某种原因它们不起作用。跑步
$a = 1;
$b = 2;
function Sum()
{
global $a, $b;
$b = $a + $b;
}
Sum();
echo $b;
返回 2,这让我怀疑 PHP 配置有问题,因为根据 PHP 文档(http://php.net/manual/en/language.variables.scope.php)它应该返回 3。
如何让全局变量工作或者是否有另一种方法可以从嵌套函数访问变量而无需多次传递它们?
PHP 版本是 5.3.10-1ubuntu3.8 并且还安装了 Zend 框架。如果您需要任何其他信息,请告诉我。