class myclass
{
private $db;
function myclass()
{
$this->db= & new MyDB();
} function get_nav()
{
$nav_ary=$this->db->db_nav();
return $nav_ary;
}
}这段代码里面$nav_ary=$this->db->db_nav();这句话出错,好像是认为$this->db没有实例化,我该怎么做?

解决方案 »

  1.   

    你这里什么信息都没有。怎么看
    MyDB类的信息都没有。。
      

  2.   

    db_nav()是MyDB类里面public出来的一个方法
    class MyDB
    {
    function MyDB()
    {
    }

    public function db_nav()
    {
    /* some code here*/
            }
    }
      

  3.   

    呵呵,楼主好象也是学JAVA的
    PHP里的构造函数好象不是这么个定义法,
    而是
    void __construct ([ mixed $args [, $... ]] )
    详细仔细可以看一下:
    http://docs.php.net/manual/zh/language.oop5.decon.php
      

  4.   

    // 你试试运行我的代码看看 , 我是php5.
    // php4没有试过噢.
    <?php
    class MyDB
    {
    public function dbNav()
    {
    return '518';
    }
    }class Myclass
    {
    private $db;
    public function __construct()
    {
    $this->db= new MyDB();
    } public function getNav()
    {
    $navAry = $this->db->dbNav();
    return $navAry;
    }
    }
    $instance = new Myclass();
    echo $instance->getNav();
    ?>
      

  5.   

    是我搞错了,找到问题了
     我在new MyDB以前调了 get_nav函数
     nnd,搞了我一下午,给大家散分