Php Kontrol Statik Sınıf Bildirilen ise

2 Cevap php

How can i check to see if a static class has been declared? ex Given the class

class bob {
    function yippie() {
        echo "skippie";
    }
}

Daha sonra kodu nasıl ben kontrol edebilirim:

if(is_a_valid_static_object(bob)) {
    bob::yippie();
}

so i don't get: Fatal error: Class 'bob' not found in file.php on line 3

2 Cevap

Ayrıca, hatta sınıfı başlatmasını olmadan, belirli bir yöntemin varlığını kontrol edebilirsiniz

echo method_exists( bob, 'yippie' ) ? 'yes' : 'no';

Eğer bir adım daha ileri gidip "yippie" aslında statik olduğunu doğrulamak isterseniz, kullanmak Reflection API (PHP5 sadece)

try {
    $method = new ReflectionMethod( 'bob::yippie' );
    if ( $method->isStatic() )
    {
    	// verified that bob::yippie is defined AND static, proceed
    }
}
catch ( ReflectionException $e )
{
    //	method does not exist
    echo $e->getMessage();
}

ya, siz iki yaklaşımı birleştirir olabilir

if ( method_exists( bob, 'yippie' ) )
{
    $method = new ReflectionMethod( 'bob::yippie' );
    if ( $method->isStatic() )
    {
    	// verified that bob::yippie is defined AND static, proceed
    }
}

bool class_exists( string $class_name [, bool $autoload ] )

"Bu işlev belirtilen sınıfın tanımlı olup olmadığını denetler."