array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'tr', ), 'this' => array ( 0 => 'function.call-user-func.php', 1 => 'call_user_func', ), 'up' => array ( 0 => 'ref.funchand.php', 1 => 'İşlevlerle İlgili İşlevler', ), 'prev' => array ( 0 => 'function.call-user-func-array.php', 1 => 'call_user_func_array', ), 'next' => array ( 0 => 'function.create-function.php', 1 => 'create_function', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'tr', 'path' => 'reference/funchand/functions/call-user-func.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
call_user_func — İlk bağımsız değişkende belirtilen kullanıcı işlevini çağırır
işlev
bağımsız değişkeni ile belirtilen geriçağırım
işlevini belirtilen bağımsız_değişkenler
i aktararak
çağırır.
işlev
Çağırılacak geriçağırım işlevi.
bağımsız_değişkenler
İşleve sıfır veya daha fazla sayıda bağımsız değişken aktarılabilir.
Bilginize:
call_user_func() işlevi gönderimli bağımsız değişkenleri aktarmaz.
Örnek 1 - call_user_func() örneği ve gönderimler
<?php
error_reporting(E_ALL);
function say(&$sayı)
{
$sayı++;
}
$a = 0;
call_user_func('say', $a);
echo $a."\n";
// yerine bu da kullanılabilir
call_user_func_array('say', array(&$a));
echo $a."\n";
// ayrıca, bir değişken işlev de kullanılabilir
$increment = 'increment';
$increment($a);
echo $a."\n";
?>Yukarıdaki örneğin çıktısı:
Warning: Parameter 1 to increment() expected to be a reference, value given in … 0 1 2
Geriçağırım işlevinin dönüş değerini döndürür.
Örnek 2 - call_user_func() örneği
<?php
function berber($tür)
{
echo "Demek $tür kesimi istiyorsunuz, sorun yok.\n";
}
call_user_func('berber', "saç");
call_user_func('berber', "sakal");
?>
Yukarıdaki örneğin çıktısı:
Demek saç kesimi istiyorsunuz, sorun yok. Demek sakal kesimi istiyorsunuz, sorun yok.
Örnek 3 - İsim alanı ismi kullanarak call_user_func()
<?php
namespace Mesela;
class Misal {
static public function dnm() {
print "Merhaba Dünyalı!\n";
}
}
call_user_func(__NAMESPACE__ .'\Misal::dnm');
call_user_func(array(__NAMESPACE__ .'\Misal', 'dnm'));
?>
Yukarıdaki örneğin çıktısı:
Merhaba Dünyalı! Merhaba Dünyalı!
Örnek 4 - Sınıf yöntemi kullanarak call_user_func()
<?php
class Sınıfım {
static function selam_ver()
{
echo "Merhaba!\n";
}
}
$sınıf = "Sınıfım";
call_user_func(array($sınıf, 'selam_ver'));
call_user_func($sınıf .'::selam_ver');
$nesne = new Sınıfım();
call_user_func(array($nesne, 'selam_ver'));
?>
Yukarıdaki örneğin çıktısı:
Merhaba! Merhaba! Merhaba!
Örnek 5 - Lamda işlevi kullanarak call_user_func()
<?php
call_user_func(function($arg) { print "[$arg]\n"; }, 'test');
?>
Yukarıdaki örneğin çıktısı:
[test]
Bilginize:
call_user_func() ve call_user_func_array() gibi işlevlerle tanımlanmış geriçağırım işlevleri, bir önceki geriçağırım işlevinde yavrulanmış ve yakalanmamış bir istisna varsa çağrılmaz.