v2.5.2
Giriş yap

PHP is_callable() Fonksiyonu

PHP 4PHP 5PHP 7

Bir değişkenin değerinin çağırılabilir bir fonksiyon ya da metod olup olmadığını kontrol eder.

Yapısı (Syntax)is_callable ( mixed $var [, bool $syntax_only = FALSE [, string &$callable_name ]] ) : bool

Parametreler

  • $var mixed
    Kontrol edilecek değişken
  • syntax_only = false boolean
    Eğer true olarak belirlenirse, kontrol işlemi sadece belirtilen fonksiyonun fonksiyon ya da method olup olmadığını kontrol eder.
  • $callable_name string
    Kontrol edilen değişkenin çağırılabilir fonksiyon ya da method ismini alır.

Dönen Değer

boolean - Eğer kontrol edilen parametre çağırılabilir bir fonksiyon ise TRUE, değil ise FALSE dönecektir.

Örnekler

En basit örneği ile bir değişkenin değerinin çağırılabilir olup olmadığını kontrol edelim.

<?php

function test(){}

$degisken = 'test';

var_dump(is_callable($degisken)); // Çıktı: bool(true)
// Yani $degisken değerindeki 'test' çağırılabilir bir fonksiyondur.

?>

Sadece değişken içeriğinin fonksiyon ya da metoda uygun olup olmadığını kontrol edelim.

<?php

$degisken = 'test';

var_dump(is_callable($degisken, true)); // Çıktı: bool(true)
// Yine true değerini döndürmesinin sebebi, $degisken değerinin fonksiyon ya da metod ismine uygun olmasından.
// Normalde öyle bir fonksiyonun olup olmadığını kontrol etmedi, 2. parametre sayesinde sadece geçerliliğini kontrol etti.
// Örneğin alttaki örnekte sadece sayı ile metod ya da fonksiyon tanımlanamayacağı için false döner.

$degisken2 = 13;
var_dump(is_callable($degisken2, true)); // Çıktı: bool(false)

?>

Şimdide 3. parametre için bir örnek verelim.

<?php

$degisken = 'test';

var_dump(is_callable($degisken, false, $funcName)); // Çıktı: bool(false)
// Çünkü test adında çağırılabilir bir fonksiyon ya da metod yok

echo $funcName; // Çıktı: test
// Burada sadece ilgili değişkenin içerdiği değeri döndürür.

?>

Sınıf içerisindeki metodlarda kullanımı ise şöyledir.

<?php

class testSinif {
  function testMetod(){}
}

$degisken = [new testSinif(), 'testMetod'];

var_dump(is_callable($degisken)); // Çıktı: bool(true)
// testSinif sınıfı içerisinde testMetod çağırılabilir bir metod olduğu için true döndü.

is_callable($degisken, false, $metodAdi);
echo $metodAdi; // Çıktı: testSinif::testMetod

?>

tayfunerbilen
1774 gün önce eklendi - 2435 kez görüntülendi.
Github'da Düzenle
Önceki sort() Sonraki function_exists()