echo $this->name; 就行了啊parent的实例就是obj2,所以直接用$this另外,只有静态的变量的才能用::调用看这个例子你就明白了
<?php 
class MyClass 

    public $name= 'Public'; 
    public $aaa="aaa";
} class MyClass2 extends MyClass 

  public $name = 'Public111'; 
  public function printHello() 
    { 
//        echo parent::$name;
echo $this->name;
echo $this->aaa;    } 
} $obj2 = new MyClass2(); $obj2->printHello(); ?> 

解决方案 »

  1.   

    最直接的方法将子类中的$name改名,在用$this->$name调用父类变量!
      

  2.   

    因为子类继承了父类中的成员变量$name,但是你在子类中又声明了一个成员变量,导致父类的成员变量被覆盖.
    parent只能访问父类中的static(静态)变量你这样写本身就违背了面向对象的方法.
    如果你想在子类中不覆盖父类的成员变量,请这样声明.同样可以在子类中通过parent::printHello()来打印出父类的私有成员$name;class MyClass 

      private $name= 'Public'; 
      public function printHello() 
      { 
        echo $this->name; 
      } 
    ...
    }class MyClass2 extends MyClass 

      public $name = 'Public111'; 
      
      public function __construct()
      {
         parent::__construct();
      }
      
      public function printHello() 
      { 
        echo $this->name1; 
        parent::printHello();
      } 

      

  3.   

    还是自由火厉害,谢谢你啦,但还要麻烦再问一个
    <?php
    $instance = new SimpleClass()
    ?>  
     当把一个对象已经创建的实例赋给一个新变量时,新变量会访问同一个实例,就和用该对象赋值一样。此行为和给函数传递入实例时一样。可以用克隆给一个已创建的对象建立一个新实例。 例子 19-3. 对象赋值<?php
    $assigned   =  $instance;
    $reference  =& $instance;$instance->var = '$assigned will have this value';$instance = null; // $instance and $reference become nullvar_dump($instance);
    var_dump($reference);
    var_dump($assigned); 
     
    NULL
    NULL
    object(SimpleClass)#1 (1) {
       ["var"]=>
         string(30) "$assigned will have this value"
    }这是手册的例子为什么前两个都是null呢,谢谢了分不多,等下次多给你分
      

  4.   

    $assigned指向的是实例化的对象.
    $reference指向的是$instance的引用地址$instance = null只是断开了$instance与实例中连接,同时$reference也断开了.
    所以$assigned还是存在的.google出来的答案.也是学习中.