PHP在函数内部调用类方法时引发错误

时间:2016-01-13 19:10:05

标签: php

include "sys.php";

$logger = new logger();
$logger->write("Hello!");

这很有效。然而,

include "sys.php";

$logger = new logger();

function test() {
    $logger->write("Hello!");
}

test();

这不是。服务器崩溃,错误500。

为什么?

2 个答案:

答案 0 :(得分:0)

$logger未在函数内定义:

include "sys.php";

function test() {
    $logger = new logger();
    $logger->write("Hello!");
}

test();

答案 1 :(得分:0)

$ logger在测试功能范围内不可用,因为它是在测试功能之外创建的。 你可以像这样声明它

    global $logger;
    $logger = new logger();
    function test() {
        global $logger;
        $logger->write("Hello!");
    }
    test();