函数不工作 - 错误:在null上调用成员函数query()

时间:2015-10-12 16:34:10

标签: php function global

第一种情况是我的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();

然后它可以工作,但我需要第一个案例

1 个答案:

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