本人初学php,下面的程序输出结果,$name都为空。各位知道咋回事吗?
<?php
class base
{
    private $name ;
    
    function __construct ($name2)
    {
        $name=$name2;
        echo "base(__construct):my name:".$name ."\n";
    }
    
    function __destruct ()
    {
         echo "base(__destruct):"."\n";
    } 
}class TestClass extends base
{
    private $name  ="Son";
    function __construct ()
    {
        parent::__construct($name);
        echo "TestClass(__construct):my name:".$name."\n";
    }
    
    function __destruct ()
    {
      echo "TestClass(__destruct):"."\n";  
    }
}$testClass=new TestClass();?>

解决方案 »

  1.   

    class TestClass extends base
    {
      private $name ="Son";
      function __construct ()
      {
      parent::__construct($this->name);
      echo "TestClass(__construct):my name:".$this->name."\n";
      }
        
      function __destruct ()
      {
      echo "TestClass(__destruct):"."\n";   
      }
    }
      

  2.   

    试试这个
    class TestClass extends base
    {
      private $name ="Son";
      function __construct ()
      {
      parent::__construct($this->name);
      echo "TestClass(__construct):my name:".$this->name."\n";
      }
       
      function __destruct ()
      {
      echo "TestClass(__destruct):"."\n";  
      }
    }
      

  3.   

    $this->name
    找本基础的书看看
      

  4.   

    为什么要用$this来引用自己的成员变量呢
      

  5.   

    还是不行,说$this->$name 未定义!!!
    ----------------------------------------
    X-Powered-By: PHP/5.2.9 ZendServer/4.0
    Set-Cookie: ZendDebuggerCookie=127.0.0.1%3A10137%3A0||084|77742D65|1006; path=/
    Content-type: text/html<br />
    <b>Fatal error</b>:  Cannot access empty property in <b>G:\DedeAMPZ\WebRoot\Default\work\phpTest\TestClass.php</b> on line <b>22</b><br />