2017-02-13 7 views
0

私は.netの開発者がLaravelフレームワークでPHPプロジェクトを作成し始めました。 .netではListを頻繁に作成できます。 PHPで同じことをする別の方法は何ですか?その後、リスト項目にアクセスするメソッドのパラメータ&としてそのリストを渡したいと思います。私はGoogleで検索したが、適切なものは何も見つかりません。私はこれがPHP開発者の観点から非常に基本的な質問かもしれないことを知っています。しかし、私はまだ混乱している&私の仕事を続行することはできません。PHPのオブジェクトのリストを作成する方法

例えば、.NETのコードで、私たちのようにリストオブジェクトを作成する - 方法でそのリストのオブジェクトを渡すには

public List<ReaderInfo> readerInfo = null; 

-

public void InitReaderInfo(List<ReaderInfo> reader) 
-

InitReaderInfo(readerInfo); 

メソッドの定義は次のように書かれています

今、PHPで同じものを変換したいと思います。 提案がありますか?

+0

start study at php.net –

+0

配列を使用してください。これを達成する最善の方法。 –

+0

Laravelで作業している場合は、配列ではなく 'Collection'が必要です。 –

答えて

0

PHPは強力な言語ではありません。 genericsまたはgeneric methodsもサポートしていません。

public List<ReaderInfo> readerInfo = null; 

またはこの:

public void InitReaderInfo(List<ReaderInfo> reader) 

ちょうどそれを定義することで、要素をリストするタイプを強制する簡単な方法がないことを一般的には、あなたがこれを書くことができないことを意味します。このような優れた型の安全性を得るために

<?php 

class Thing { 
    private $name; 
    public function __construct($name) { 
    $this->name = $name; 
    } 
    public function __toString() { 
    return $this->name; 
    } 
} 

class Fruit extends Thing {} 

class ThingList { 
    private $list; 
    public function __construct(Thing ...$list) { 
    $this->list = $list; 
    } 
    public function __toString() { 
    return array_reduce($this->list, function ($carry, $item) { 
     return $carry . $item . "\n"; 
    }, ''); 
    } 
} 

function PrintThings(ThingList $list) { 
    // ... do something to the thing list 
    echo $list; 
} 

?> 

:しかし、PHPは、あなたがこれを行うことができargument types declarationをサポートしてい

<?php 

// declare a list of thing 
$things = new ThingList(
    new Thing("apple"), 
    new Fruit("orange") 
); 

PrintThings($things); 

?> 

あなたはLaravel具体的な解決策の話をしている場合は、私はあなたを示唆しますjcrowe/type-safe-collectionライブラリーをご覧ください。これは、少ない労力で同様のことを行うことができます。

関連する問題