2014-02-28 59 views
0

我想從類獲取來自這是一個類裏面的函數變量的特定值

class Animal 
{ 
    var $name; 

    function __Construct($names){ 
     $this->name=$names; 
    } 
} 

class Dog extends Animal 
{ 
    function prop($ht, $wt, $ja) 
    { 
     $height=$ht; 
     $weight=$wt; 
     $jaw=$ja; 
    } 
} 

$dog= new dog('Pug'); 
$dog->prop(70, 50, 60); 

我想呼應從dog只有一個特定的值內聲明的函數只能訪問一個特定的值功能prop

dog->prop->jaw;

這是如何完成的?

+0

通常,'__construct'方法名是所有小寫 – Phil

回答

2

聽起來像是你想這樣的事情...

class Dog extends Animal { 
    private $props = array(); 

    public function prop($height, $width, $jaw) { 
     $this->props = array(
      'height' => $height, 
      'width' => $width, 
      'jaw' => $jaw 
     ); 
     return $this; // for a fluent interface 
    } 

    public function __get($name) { 
     if (array_key_exists($name, $this->props)) { 
      return $this->props[$name]; 
     } 
     return null; // or throw an exception, whatever 
    } 
} 

則可以執行

echo $dog->prop(70, 50, 60)->jaw; 

或單獨

$dog->prop(70, 50, 60); 
echo $dog->jaw; 
+0

||但它表明我錯誤 ||「private $ props = [];」 ||解析錯誤:語法錯誤,意外'[' – musthafa

+0

您必須使用舊版本的PHP。您需要使用舊的數組聲明語法。我會在我的答案中解決它。 – Phil

+0

哦,那很好,菲爾感謝您的立即回覆 – musthafa

相關問題