0
<?php

class User {

    private $id;
    private $username;

    public function __construct($id = null) {
        $this->id = $id;

        if (!is_null($this->id)) {
            $this->load();
        }
    }

    public function load() {


    }

}

?>

'load'メソッドでは、現在のユーザー(id)からすべての情報をロードしますが、すべての情報をロードするための最良の方法はどのようになっているのでしょうか。すべてのデータを取得してから、すべてのプライベート変数を割り当てることもできますが、すべてのデータを取得するための別の「安価な」方法が必要であると思います。

$ this-> variable;

そして、すべてのデータ行を割り当てる必要はありません。loadメソッドで選択します。どのように?

4

2 に答える 2

1

私は次のことを想定しています:

  • 各Userオブジェクトは、データベースの1行を表します
  • 連想配列でユーザーの情報を取得できます。

    $user = array('name' => 'John', 'age' => 20);

次に、変数変数を使用することが、load()メソッドで実行可能な解決策になる可能性があります。

foreach($user as $key => $userData){
   $this->$$key = $userData; //Note the use of variables variable
}
于 2012-04-14T11:25:49.080 に答える
0

phpで次のような複数の変数を割り当てることができます。

private function getUserData() {
  return array("42", "JohnDoe");
}

public function load() {
  list($this->id, $this->username) = getUserData();
}
于 2012-04-14T11:22:36.770 に答える