Ich möchte so etwas machen:
Klasse Cls { Funktionsspaß ($ php) { Rückkehr 'Der Regen in Spanien.'; }} }} $ ar = Array (1,2,3); $ instance = new Cls (); print_r (array_map ('$ instance-> fun', $ ar)); // ^ das wird nicht funktionieren
Das erste Argument für array_map soll jedoch der Name der Funktion sein. Ich möchte vermeiden, eine Wrapper-Funktion um $ instance-> fun zu schreiben, aber es scheint nicht möglich zu sein. Ist das wahr?
array('Class_Name', 'functionName')
als Parameter verwenden. Wenn es sich um die übergeordnete Klasse der aktuellen Klasse handelt,array($this, 'functionName')
sollte die Verwendung höchstwahrscheinlich funktionieren.Sie können auch verwenden
array_map('Class::method', $array)
Syntax.
quelle
array_map('self::method', $array)
Eigentlich müssen Sie die Definition von Rückruf kennen, bitte beachten Sie den folgenden Code:
<?php // An example callback function function my_callback_function() { echo 'hello world!'; } // An example callback method class MyClass { static function myCallbackMethod() { echo 'Hello World!'; } } $myArray = [1, 2, 3, 4]; // Type 1: Simple callback array_map('my_callback_function', $myArray); // Type 2: Static class method call array_map(array('MyClass', 'myCallbackMethod'), $myArray); // Type 3: Object method call $obj = new MyClass(); array_map(array($obj, 'myCallbackMethod'), $myArray); // Type 4: Static class method call (As of PHP 5.2.3) array_map('MyClass::myCallbackMethod', $myArray); // Type 5: Relative static class method call (As of PHP 5.3.0) class A { public static function who() { echo "A\n"; } } class B extends A { public static function who() { echo "B\n"; } } array_map(array('B', 'parent::who'), $myArray); // A ?>
Von: http://php.net/manual/en/language.types.callable.php
quelle