tutorial programacion lenguaje descargar caracteristicas php

programacion - ¿Se puede usar un método como una función array_map en PHP 5.2?



php tutorial (3)

Quiero hacer algo como esto:

class Cls { function fun($php) { return ''The rain in Spain.''; } } $ar = array(1,2,3); $instance = new Cls(); print_r(array_map(''$instance->fun'', $ar)); // ^ this won''t work

pero se supone que el primer argumento de array_map es el nombre de la función. Quiero evitar escribir una función de envoltorio alrededor de $ instance-> fun, pero no parece que sea posible. ¿Es eso cierto?


En realidad, necesita saber la definición de devolución de llamada, por favor consulte el siguiente código:

<?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 ?>

De: http://php.net/manual/en/language.types.callable.php


Sí, puedes tener devoluciones de llamada a métodos, como este:

array_map(array($instance, ''fun''), $ar)

ver el tipo de devolución de llamada en el manual de PHP para más información


También puedes usar

array_map(''Class::method'', $array)

sintaxis.