call_user_func

(PHP 4, PHP 5, PHP 7)

call_user_funcİlk değiştirgede belirtilen kullanıcı işlevini çağırır

Açıklama

call_user_func ( callback $işlev [, mixed $değiştirge [, mixed $... ]] ) : mixed

işlev değiştirgesi ile belirtilen kullanıcı tanımlı işlevi çağırır.

Değiştirgeler

işlev

Çağırılacak işlev. Ayrıca, bu değiştirgede bir nesne örneğinin sınıf yöntemlerinin, array($sınıfadı, $yöntemadı) biçiminde belirtilmek suretiyle çağrılması da mümkündür.

değiştirge

İşleve sıfır veya daha fazla sayıda değiştirge aktarılabilir.

Bilginize:

call_user_func() işlevi gönderimli değiştirgeleri 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";

call_user_func_array('say', array(&$a)); // PHP 5.3 öncesinde bunu kullanın
echo $a."\n";
?>

Yukarıdaki örneğin çıktısı:

0
1

Dönen Değerler

Hata oluşmamışsa işlevin sonucunu aksi takdirde FALSE döndürür.

Örnekler

Ö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";
    }
}

// PHP 5.3.0 ve sonrası
call_user_func(__NAMESPACE__ .'\Misal\dnm');

// PHP 5.3.0 ve sonrası
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'); // PHP 5.2.3 ve sonrası

$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
// PHP 5.3.0 ve sonrası
call_user_func(function($arg) { print "[$arg]\n"; }, 'test');
?>

Yukarıdaki örneğin çıktısı:

[test]

Ayrıca Bakınız

  • call_user_func_array() - Değiştirgelerin bir dizi olarak verildiği kullanıcı işlevini çağırır
  • is_callable() - Bir değişkenin içeriğinin bir işlev olarak çağrılabilirliğini doğrular
  • callback türü hakkında bilgi