2016-05-25 6 views
0

プロパティ()メソッドが正しいかどうか分かりません $ db_table_fieldsの値を引き出し、それらを配列$プロパティのキーにして、それらを同じ配列の値として割り当てる...?私が理解しているかわかりません

は、「連想配列」と呼ばれるものを作成しています

class User{ 

    protected static $db_table = "users"; 
    protected static $db_table_fields = array('username','password','first_name','last_name'); 
    public $id; 
    public $username; 
    public $password;  
    public $first_name; 
    public $last_name; 

    protected function properties(){ 
     $properties = array(); 
     foreach(self::$db_table_fields as $db_field){ 
      if(property_exists($this,$db_field)){ 
       $properties[$db_field] = $this->$db_field; 
      } 
     } 
     return $properties; 
    } 

} 
+0

正確には理解できません。 –

+0

'$ db_field'と' $ this-> $ db_field'の違いを考えてみましょう。 – Barmar

答えて

1

それは要素オブジェクトの選択したプロパティに対応する連想配列を作成します。配列$db_table_fieldsにはこれらのプロパティがリストされています。その後、その配列をループし、$thisにそれぞれの名前のプロパティが含まれているかどうかをチェックします。プロパティが存在する場合は、キーがプロパティ名で値がプロパティ値である$properties配列にエントリが追加されます。

$properties[$db_field] = $this->$db_field; 

$properties[$db_field] =キー$db_fieldある$propertiesアレイの要素(ループの現在の要素)を作成することを意味:これは重要なラインです。 $this->$db_fieldは、現在のオブジェクトにアクセスするためのプロパティ名として$db_fieldを使用します。

0

...ちょうど/それを理解しようとするペーストのコードをコピーしたくありません。つまり、配列は数値インデックスの代わりに文字列キーを使用してインデックスされます。詳細について

、アレイのドキュメントをチェックアウト:

Arrays in PHP
関連する問題