日期:2014-05-17  浏览次数:20476 次

【紧急求助】Fatal error: Call to a member function *** on a non-object
本帖最后由 keric2008 于 2013-08-26 18:33:02 编辑
源代码很长,抽象下,大概流程是这样的。

{
    $instest = new test();
    $insobject = new object();
    $instest->test();
}

class test{
    function test(){
        $insobject->hello();
    }
}

class object{
    function hello(){
        echo "hello";
    }
}
这样就会出现 如题的错误:Fatal error: Call to a member function hello() on a non-object in /home/latelx64/workspace/zhebo/init.php on line 158

难道是在实例里不能调用其他实例的public函数么?

如果不能的话应该如何以类似的方式解决呢???
本人新学PHP,希望各位高手给予指导!!!
php class

------解决方案--------------------
这与面向对象无关!
只是个变量作用域的问题!
class test{
    function test(){
        $insobject->hello();
    }
}
中 $insobject 是局部变量,并且也没有赋值。
当然也就没有 hello 方法了
------解决方案--------------------
class test{
    function test(){
        object::hello();
    }
}

class object{
    Public static function hello(){
        echo "hello";
    }
}