call_user_func

(PHP 4, PHP 5)

call_user_funcAppelle une fonction de rappel fournie par le premier argument

Description

mixed call_user_func ( callable $callback [, mixed $parameter [, mixed $... ]] )

Appelle une fonction de rappel callback fournie par le paramètre callback où les autres arguments seront passés en paramètre.

Liste de paramètres

callback

La fonction de rappel à appeler.

parameter

0 ou plus de paramètres à passer à la fonction de rappel.

Note:

Notez que les paramètres pour call_user_func() ne sont pas passés par référence.

Exemple #1 Exemple avec call_user_func() par référence

<?php
function increment(&$var)
{
	$var++;
}

$a = 0;
call_user_func('increment', $a);
echo $a."\n"; 

call_user_func_array('increment', array(&$a)); 
// Vous pouvez utiliser ceci à la place jusqu'en PHP 5.3
echo $a."\n"; 
?>
<?php
function barber($type)
{
	echo "Vous voulez une coupe $type, aucun problème";
}
call_user_func('barber', "au bol");
call_user_func('barber', "au rasoir");
?>
<?php

namespace Foobar;

class Foo {
	static public function test() {
		print "Hello world!\n";
	}
}

call_user_func(__NAMESPACE__ .'\Foo::test'); // As of PHP 5.3.0
call_user_func(array(__NAMESPACE__ .'\Foo', 'test')); // As of PHP 5.3.0
?>
<?php

class maclasse {
	static function dit_bonjour()
	{
		echo "Bonjour!\n";
	}
}

$classname = "maclasse";

call_user_func(array($classname, 'dit_bonjour'));
call_user_func($classname .'::dit_bonjour');	// Depuis 5.2.3

$monobjet = new maclasse();

call_user_func(array($monobjet, 'dit_bonjour'));

?>
<?php
call_user_func(function($arg) { print "[$arg]\n"; }, 'test'); /* Depuis PHP 5.3.0 */
?>

L'exemple ci-dessus va afficher :

[test]

Notes

Note:

Notez que les fonctions de rappel enregistrées avec des fonctions comme call_user_func() et call_user_func_array() ne seront pas appelées si une exception n'est pas interceptée alors qu'elle a été lancée dans une précédente fonction de rappel.

Voir aussi

LoadingChargement en cours