Özel özellikler içeren sınıflarda, property_exists() işlevi true değerini döndürür (php> 5.3). İşlevler ile, yalnızca yöntemin varlığını değil, aynı zamanda mevcut olduğunu (method_exists() 'in bir alternatifi olarak) onaylayan bir is_callable yöntemi de vardır. Bu özelliğe erişilebiliyorsa, bu işlevin eşdeğer bir karşılığı var mı?Bir özelliğin php'de erişilebilir olup olmadığını nasıl doğrularsınız?
<?php
class testClass {
private $locked;
public $unlocked;
private function hiddenFunction(){
return "hidden";
}
public function visibleFunction(){
return "visible";
}
}
$object = new testClass();
var_dump(property_exists($object, "unlocked")); // returns true
var_dump(property_exists($object, "locked")); // returns true > php 5.3
var_dump(method_exists($object, "hiddenFunction")); // returns true but can't be called
var_dump(method_exists($object, "visibleFunction")); // returns true
var_dump(is_callable(array($object, "hiddenFunction"))); // returns false
var_dump(is_callable(array($object, "visibleFunction"))); // returns true
?>
Teşekkürler. Kontrol fonksiyonlarının basit php fonksiyonları ile yapılabilmesi gariptir, ancak özellik yansıma sınıfını kullanmalıdır! – Joe