TypeHinting nedir? Php Typehinting

Typehinting demek, bir class’a ait metodun aldığı parametrelerin türünün önceden belirlenmesi, force edilmesi demektir. Ancak bu işlemi sadece objelerde ve arraylerde yapabilmekteyiz.

Örnek verecek olursak;

class Dubluve{
 public function deneme(array $a){
  var_dump($a);
 }
}
$obj = new Dubluve();

deneme metodu için şunları söyleyebiliriz;

// bu kodlar hata verecektir
$obj->deneme("php");
$obj->deneme(123);
$obj->deneme("1");

// bu kod çalışacaktır
$obj->deneme(array("a", "b", "c"));

Type hinting işlemini düzgün olarak array ve objelerde kullanabiliyoruz onun da şöyle bir püf noktası var. Metoda gönderdiğimiz parametre için default değer olarak NULL atarsak, gönderdiğimiz parametre de NULL olabilir. Bunu da örnekle açıklamak gerekirse,

class DubluveRSS{
 public function deneme(Dubluve $dubluve) // $dubluve değişkeni sadece Dubluve'nin objesi olabilir
 public function deneme(Dubluve $dubluve = NULL) // $dubluve değişkeni Dubluve'nin objesi olabilir veya NULL olabilir
}

Öte yandan ;

public function deneme(array $dubluve = array("a", "b", "c"))

bu fonksiyonu deneme(null); şeklinde çalıştıramayız. Ancak diyorsak ki, null parametre gönderilebilsin ancak null geldiyse default olarak bir şeyler atayabileyim, o zaman da şöyle birşey yapabiliriz

public function deneme(array $dubluve = null){
 if($dubluve === null){
   $dubluve = array("a", "b", "c");
 }
 .
 .
 .
}

Typehinting fonksiyonlarda da çalışmaktadır. Yine class metodlarında olduğu gibi sadece obje ve arrayler ile işlem yapılabilmektedir.

4 Comments

    TypeHinting nedir? Php Typehinting | Lé Blog

    […] class Dubluve{ … Devamı için : TypeHinting nedir? Php Typehinting […]

    TypeHinting nedir? Php Typehinting | Anil's Blog

    […] class Dubluve{ … Devamı için : TypeHinting nedir? Php Typehinting […]

    TypeHinting nedir? Php Typehinting | kodluyorum

    […] class Dubluve{ … Devamı için : TypeHinting nedir? Php Typehinting […]

    TypeHinting nedir? Php Typehinting | yusufozkay

    […] class Dubluve{ … Devamı için : TypeHinting nedir? Php Typehinting […]

Bir Cevap Yazın