2016-02-03 144 views
1

例如,我在laravel中看到,循環遍歷模型時,它僅循環通過表屬性。例如在循環對象時,循環訪問特定屬性

$user = new User(1); 
foreach($user as $key => $value){ 
    echo $key.' = '.$value.'<br>'; 
} 

輸出會是這樣

id=1 
first_name=jone 

它只遍歷表列雖然該類具有其他屬性

我的班級是這樣

class Model { 
    protected $prop1; 
    protected $prop2; 
    protected $columns = ['id' => 1, 'name' => 'name']; 
} 

我想實現類似的東西,所以當我創建一個對象並循環它時,只循環t hrough $columns屬性格式例如

$model = new Model(); 
foreach($model as $key => $value){ 
     echo $key.' = '.$value.'<br>'; 
} 

我需要的輸出是這樣

id=1 
name=name 
+1

有沒有想過使用'in_array'? 'if(in_array($ key,$ this-> columns)){echo ...}' –

回答

0

您可以定義PHP將如何對待你的foreach循環對象。 請參閱此處以獲取文檔:http://php.net/manual/en/language.oop5.iterations.php 默認情況下,php將遍歷所有公共屬性。

+0

我們歡迎您對stackoverflow的第一個答案。也放一些代碼。不要只發布鏈接。 –