2011-12-14 8 views
1

私はお詫びしますが、私はいくつかのPHPを手に取りましたが、これまで何も深刻なことはしていません。配列宣言内でクラスをインスタンス化する

基本的に、私はこのようなものがあります:私は何をしたいか

class MyClass 
{ 
    function _construct($var1, $var2) 
    { 
     //property assignments 
    } 
} 

function doStuff($array) 
{ 
    //do stuff to $array 
} 

$myArray = array(); 
$myVar1 = "foo"; 
$myVar2 = "bar"; 
$myVar3 = "test" 
$myVar4 = "aaaaa" 
//etc... 

MyClassのインスタンスを作成し、$myArrayにそれを格納しています。

$classInstance = new MyClass($myVar1, $myVar2); 
$myArray[] = $classInstance 
$anotherInstance = new MyClass($myVar3, $myVar4); 
$myArray[] = $anotherInstance 
//etc... 

このプロセスは、複数回(ループなしで)実行されます。私はこれを複数回行ってたら、私は以下のことになるだろう。

doStuff($myArray); 

この関数の内部、私はこれが退屈になるだろうなど、foreachとをループされます。私が知りたいことは、私は(これは適切な構文ではないことを知っています)何かをすることができるいくつかの方法があります。ありがとう!

+3

を '$ myarrayのは[] =新しいMyClassの($ myVar1、$ myVar2);'完全に有効です:あなたがしたいとあなたは正確に行うことができます。 –

+1

なぜ '$ myArray [] = new MyClass($ myVar1、$ myVar2);'が適切な構文ではありませんか? – xdazz

+0

ああ、ありがとう。私はそれが正しい構文であることを知らなかった。 –

答えて

0

構文$myArray[] = new MyClass($myVar3, $myVar4);はすでに有効です。 、実際に

$arr = array(); 
$arr[] = new stdClass; 
$arr[] = new stdClass; 
$arr[] = new stdClass; 
$arr[] = new stdClass; 
$arr[] = new stdClass; 

var_dump($arr); 
array(5) { 
    [0]=> 
    object(stdClass)#1 (0) { 
    } 
    [1]=> 
    object(stdClass)#2 (0) { 
    } 
    [2]=> 
    object(stdClass)#3 (0) { 
    } 
    [3]=> 
    object(stdClass)#4 (0) { 
    } 
    [4]=> 
    object(stdClass)#5 (0) { 
    } 
} 
+0

ご協力いただきありがとうございます。私はあなたがそれをすることができるかはわかりませんでした。 PHPを好きになった理由 –

0
$myArray = array(
    new MyClass('foo', 'bar'), 
    new MyClass('test', 'aaaaa') 
); 
関連する問題