本帖最后由 xuzuning 于 2012-11-19 22:06:50 编辑

解决方案 »

  1.   

    Fatal error: Call to a member function start() on a non-object in C:\wamp\www\PCI.php on line 63-------------注意看他的中文意思 就是说start方法不是一个对象的方法。
    就是说 你哪里没有实例化对象 或者调用该方法的不是一个对象
      

  2.   

    不能这么直接用吧
    $mb->...
      

  3.   

    mb没初始化
    先$mb = new NetCard(); 
      

  4.   

    $mb = new MainBoard;
    $mb->usePCI($nc);结果为:网络连接成功网络断开连接
      

  5.   

    也可以class Person
    {
        function install()
        {
            $this->mb=new MainBoard();
                 
        }
    }
    $p=new Person();
    $p->install();
    $nc=new NetCard;
    $p->mb->usePCI($nc);总之毫无来由的 $mb->usePCI($nc); 是不可以的
      

  6.   

    虽然
    class Person
    {
        function install()
        {
            global $mb;
            $mb=new MainBoard();
                 
        }
    }
    也是可以的,但强烈的外联不符合软件工程的规则
      

  7.   

    这样可以了,但是还有疑问,
    我那种方式在创建Person对象时,有个方法就创建了MainBoard对象$mb
    我这样调用为什么不行?
    $mb->usePCI($nc);
      

  8.   

    class Person
    {
        function install()
        {
            $mb=new MainBoard();
                 
        }
    }
    你是指这个吗?
    $mb 是在 install 方法中创建的,方法结束了,也就没有了
    并不因为是类而改变了变量的作用域
      

  9.   

    $p->install()->usePCI($nc);这样或者可以