2013-01-09 68 views
0

我試圖使用一個接口來替代缺乏PHP中的枚舉,但它似乎並沒有按照我希望的方式工作。從類中獲取枚舉類型的值?

下面是代碼:

interface Brands 
{ 
    const abrand = "A Brand"; 
    const anotherbrand = "Another Brand"; 
} 

class Product 
{ 
    private $brand; 

    function __construct() { 

    } 

    public function getBrand() { 
     return Brands::$this->brand; 
    } 
    public function setBrand($value) { 
     $this->brand = $value; 
    } 
} 

$product = new Product(); 
$product->setBrand("aproduct"); 

echo $product->getBrand(); 

有人可以解釋爲什麼輸出abrand而不是A Brand

+0

爲什麼你使用'品牌:: $這個 - > brand',而不是簡單的'品牌:: abrand'?奇怪的是,你想模仿枚舉,同時仍然想要使用PHP的動態結構,比如這個'Brands :: $ this-> brand'。無論如何,似乎'Brands ::'前綴被完全忽略,它只返回'$ this-> brand'的值。 –

+0

哦,男人,這讓我想......這是愚蠢的(見答案) – Microsis

+1

哈哈,沒問題。我有一個很好的橡皮鴨的記錄(對於那些不瞭解http://en.wikipedia.org/wiki/Rubber_duck_debugging)的記錄。 –

回答

0

那麼,這是愚蠢的。

我一直在做的,而不是$product->setBrand(Brands::abrand);$product->setBrand("aproduct");

:/