2016-12-14 11 views
1

PHP7オブジェクトのコレクション+プロパティ私は(C#のように)PHPでオブジェクトを作成するにはどうすればよい

3つのプロパティ私はコレクション にユーザーを追加して、ループのユーザーことができますどのように

class Users 
{ 
    private $name; 
    private $age; 
    private $sex; 

    public function __construct($name, $age, $sex) { 
     $this->name = $name; 
     $this->age = $age; 
     $this->sex = $sex; 
    } 
} 

とexempleユーザーのために

$user->name 
$user->age 
$user->sex 

はあなたからあなたの

+0

これは[基本的なドキュメント](http://php.net/manual/en/language.oop5.basic.php)に関する質問です。 PHP7は*匿名クラス*も実装しています。同様のアプローチは*連想配列*です。 –

+0

ありがとうございますが、私はそれを見つけることができませんでした。配列キー=>値のコレクションしか見つかりませんでした。 キーの値だけでなく、> 2のプロパティを持つオブジェクトのコレクションを作成したい –

+0

値はobjectでも配列でも構いません。これは構文の問題です。 '$ obj-> propname'と' $ arr ['itemname'] 'です。どのPHPバージョンがあなたの質問をターゲットにしていますか? Assoc。配列コレクション: 'for($ i = 0; $ i

答えて

0

に感謝取得するコレクションGIVたとえば、次のように実現できます。

class User 
{ 
    const 
    SEX_M = 1, 
    SEX_F = 2 
    ; 

    private 
    $name, 
    $age, 
    $sex 
    ; 

    public function __construct($name, $age, $sex) { 
    $this->name = $name; 
    $this->age = $age; 
    $this->sex = $sex; 
    } 

    public function dump() 
    { 
    echo "name: $this->name, age: $this->age, sex: " 
     . ($this->sex === User::SEX_M ? 'm' : 'f') . "<br>\n"; 
    } 
} 

$collection = array(); 
$collection[] = new User('Tom' , 10, User::SEX_M); 
$collection[] = new User('Jerry', 11, User::SEX_F); 

foreach ($collection as $user) 
    $user->dump(); 
+0

パーフェクト!ちょうど私が欲しかったもの ありがとうございました –

+0

@ErickBoileauもっと若いPHPバージョンでもスカラー型ヒントを使うことができます。例えば'' public function __construct(string $ name、int $ age、int $ sex){' –

+0

ありがとう、私はC#に慣れていて、PHPで全く新しいです –

関連する問題