2011-10-19 130 views
0

我想从另一个类的另一个类创建对象。 所以我做到了:在类的构造函数中创建另一个对象

class National_Number{ 
    private $num = array(); 
    public function __construct($first = NULL,$second = NULL,$third = NULL) { 
     $this->set($first,0); 
     $this->set($second,1); 
     $this->set($third,2); 
    } 
    public function set($num = NULL,$part = 0) 
    { 
     if ($num != NULL AND $part num[$part] = $num; 
      else 
       return FALSE; 
     } 
     else 
     { 
     return FALSE; 
     } 
    } 
    public function get($part = 0) 
    { 
     if ($part num[$part]; 
     else 
      return FALSE; 
    } 
} 
class Temp { 
    private $ID; 
    public function __construct() { 
     $ID = new National_Number(127,110,8100); 
    } 
    public function _get() 
    { 
     var_dump($ID->get()); 
    } 
} 
$temp = new Temp(); 
$temp->_get(); 

国家代码将正常工作,但临时类是行不通的,问题出在哪里?

+5

尝试了'$ this-> ID'呢?而这里看起来像破损的代码:'if($ part num [$ part];'..你有什么问题ctrl + c? – Lukman

回答

1

唐`吨忘记使用 “$这个 - >” 访问类成员时,更新的代码=>

class National_Number{ 
      private $num = array(); 
      public function __construct($first = NULL,$second = NULL,$third = NULL) { 
       $this->set($first,0); 
       $this->set($second,1); 
       $this->set($third,2); 
      } 
      public function set($nume = NULL,$part = 0) 
      { 
       if ($nume != NULL AND $part){ 
        $this->num[$part] = $nume; 
       } 
        else 
         return FALSE; 
       } 


      public function get($part = 0) 
      { 
       if (isset($this->num[$part])){ 
        return $this->num[$part]; 
       } 
       else 
        return FALSE; 
      } 
     } 
     class Temp { 
      private $ID; 
      public function __construct() { 
       $this->ID = new National_Number(127,110,8100); 
      } 
      public function _get() 
      { 
       var_dump($this->ID->get(1)); 
      } 
     } 
     $temp = new Temp(); 
     $temp->_get(); 
     ?> 
1

$ID是一个局部变量,仅在__construct()有效。如果要引用的属性,你必须使用$this->ID

$this->ID = new National_Number(127,110,8100); 

同为__get()

相关问题