PHP Funktionen wie ‚array_map‘ einen Rückruf nehmen, was eine einfache Funktion oder eine Klasse oder Objektmethode sein kann:Ist in PHP5 ein 'invoke'-Callback möglich?
$array2 = array_map('myFunc', $array);
oder
$array2 = array_map(array($object, 'myMethod'), $array);
Aber gibt es eine Syntax, um eine Methode zu übergeben welche innerhalb der Iteration an das aktuelle Objekt gebunden ist (wie 'in Prototype.js' aufrufen)? So dass die folgenden verwendet werden:
$array2 = array_map('myMethod', $array);
mit der Wirkung von
foreach($array as $obj) $array2[] = $obj->myMethod();
Natürlich kann ich dieses Formular benutzen, oder ich kann eine Wrapper-Funktion, um den Anruf zu tätigen, schreiben und sogar die Inline . Aber da "myMethod" bereits eine Methode ist, scheint es um die Häuser herumzugehen, um eines davon zu tun.
Welches ist länger und weniger offensichtlich als meine foreach-Methode. Vielen Dank. –
Es ist hässlich in Ordnung, aber zumindest verwendet es keine temporären Variablen. Wenn Sie von einer funktionsorientierten Sprache wie Ruby oder Lisp kommen, erscheint es intuitiver. – troelskn