instantiate object in foreach

Is er een manier om dit te doen door het object in de lus zelf te instantiëren?

foreach ($primaryKeys as new foo($primaryKey){
   //do stuff with the object we just instantiated
}
0

2 antwoord

Je zou het meteen in de lus kunnen maken ...

foreach ($primaryKeys as $primaryKey{
    $pk = new foo($primaryKey);
   //do stuff with the object we just instantiated
}

Werkt het niet zo?

1
toegevoegd
Het werkt prima, zie mijn vraag. Ik weet dat je het binnen de lus kunt doen, gewoon je afvragen of er een manier was om het in de foreach() zelf te doen om de code wat op te schonen.
toegevoegd de auteur Matthew, de bron

Het is niet mogelijk omdat u geen variabelen binnen foreach kunt toewijzen met = . En je kunt niet werken met een instantie van een object als je het nergens hebt toegewezen.

Dit zal echter de slag gaan:

foreach ($primaryKeys as $primaryKey) {
    $whatever[] = new foo($primaryKey);
}
0
toegevoegd