第一种情况是我的mysqli连接
$mysqli = new mysqli(...);
第二种情况是我的查询
$mysqli->query(...);
我收到错误
在null
上调用成员函数query()
样品:
function first()
{
$i = 1;
}
function second()
{
global $i;
return $i;
}
echo second();
空白屏幕。
如果代码是这样的
$i = 1;
function second()
{
first();
global $i;
return $i;
}
echo second();
然后它可以工作,但我需要第一个案例
答案 0 :(得分:0)
在“function first()”中,$ i被声明为局部变量。它不能从first()函数的外部引用。因此,当您调用“global $ i”时,您将获得一个“null”值,因为没有名为$ i的全局变量。
在你的第二个例子中,你在函数之外声明了你的$ i变量 - 这使它成为一个全局变量。所以,当你打电话给“全球$ i”时。您正在引用您设置的$ i变量等于1.因此,返回的值为“1”而不是“null”。
有关本地和全局变量的更多信息,请参阅此处的PHP文档。它包含一个完全像你的例子。 http://php.net/manual/en/language.variables.scope.php