Bir sınıf çalışma zamanında soyut olup olmadığını PHP 5.x, nasıl tespit edebilirsiniz?

4 Cevap php

PHP sınıf adları bir dizi döngü ediyorum) (get_declared_classes yoluyla alındı.

Nasıl bu özel sınıf soyut bir sınıf olup olmadığını ya da değil algılamak için her sınıf adını kontrol edebilir?

4 Cevap

Yansıma kullanın. ReflectionClass ->isAbstract()

Bu gibi kullanın:

$class = new ReflectionClass('NameOfTheClass');
$abstract = $class->isAbstract();

Sen sınıf Reflection kullanabilirsiniz.

<?php 

abstract class Picasso
{
    public function __construct()
    {

    }
} 

$class = new ReflectionClass('Picasso');

if($class->isAbstract())
{
    echo "Im abstract";
}
else
{
    echo "Im not abstract";
}

?>

Www.php.net/oop5.reflection: kılavuzuna bakın

Eğer zamanında bu kontrol etmek gerekiyorsa, ben size bir uygulama mimarisi yeniden değerlendirmek öneririm.

Eğer değiştiremezsiniz diğer kodu incelemek için son derece karmaşık bir uygulama oluştururken sürece bunu yapmak için denemek asla.