mixed indica que un parámetro puede
aceptar múltiples tipos (pero no necesariamente todos).
gettype() por ejemplo aceptará todos
los tipos PHP, mientras que str_replace()
aceptará cadenas y matrices.
Algunas funciones como call_user_func() o
usort() aceptan llamadas de retorno definidas
por el usuario como un parámetro. Las funciones tipo
llamada de retorno no sólo pueden ser funciones simples,
también pueden ser métodos de objetos incluyendo
métodos estáticos de clase.
Una función de PHP es simplemente pasada usando su nombre
como una cadena. Puede pasar cualquier función incorporada
o definida por el usuario con la excepción de
array(), echo(),
empty(), eval(),
exit(), isset(),
list(), print() y
unset().
Un método de un objeto instanciado es pasado como una
matriz que contiene un objeto como el elemento con el
Ãndice 0 y un nombre de método como el elemento con
Ãndice 1.
Los métodos estáticos de clase pueden ser pasados
también sin instanciar un objeto de esa clase al pasar el
nombre de clase en lugar de un objeto como el elemento con
Ãndice 0.
Ejemplo 11-13.
Ejemplos de funciones tipo llamada de retorno
<?php
// Una llamada de retorno de ejemplo function mi_llamada_de_retorno() { echo '¡Hola mundo!'; }
// Un método como llamada de retorno de ejemplo class MiClase { function miMetodoDeRetorno() { echo '¡Hola Mundo!'; } }
// Tipo 1: Llamada de retorno simple call_user_func('mi_llamada_de_retorno');
// Tipo 2: Llamada de metodo estatico de clase call_user_func(array('MiClase', 'miMetodoDeRetorno'));
// Tipo 3: Llamada a un metodo de objeto $obj = new MiClase(); call_user_func(array(&$obj, 'miMetodoDeRetorno')); ?>
|
|