2016-08-27 6 views
0
public static function instantiation($row){ 
>>> $users = new self; 
    foreach ($row as $the_attribute => $value) { 
     if($users ->has_the_attribute($the_attribute)){ 
     $users ->{$the_attribute} = $value; 

     } 
    } 
    return users; 
    } 

    private function has_the_attribute($the_attribute){ 
     $object_properties = get_object_vars($this); 
     $array_result = array_key_exists($the_attribute, $object_properties); 
     return $array_result; 
    } 

has_the_attribute()を呼び出すためにここにオブジェクトを作成する必要があるのはなぜ分かりますか? $users->$the_attributeの代わりに$this->has_the_attribute$this->$the_attributeを使用した場合の問題は何ですか?

答えて

0

名前が$the_db_attributeの値を持つプロパティを割り当てており、その値を$valueに設定しています。 $the_db_attribute = "foo"もしそうなら、それは$result配列の対応する要素を持つオブジェクトのプロパティに充填されているもの、これはやっているので

$the_object->foo = $value; 

に相当します。

1

$resultを反復すると、属性名/属性値のペアが得られるので、$the_db_attributeは現在の属性名を含む変数です。

$the_object -> $the_db_attribute = $value;には、$the_objectには属性名であるプロパティがあると考えられます。
現在の$the_db_attributeが、たとえば"the_first_attribute"の場合、困惑する行は、今のところ困惑していない$the_object -> the_first_attribute = $value;と等価です。

関連する問題