Giri┼č yap

PHP'de 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
128 g├╝n ├Ânce eklendi.
Github'da D├╝zenle
├ľnemli Ba┼čl─▒klar