当前位置:  开发笔记 > 编程语言 > 正文

Php检查是否声明静态类

如何解决《Php检查是否声明静态类》经验,为你挑选了2个好方法。

我如何检查是否已声明静态类?ex鉴于上课

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

稍后在代码中如何检查:

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

所以我没有得到:致命错误:在第3行的file.php中找不到类'bob'



1> Peter Bailey..:

您还可以检查特定方法是否存在,即使没有实例化该类也是如此

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

如果您想更进一步并确认"yippie"实际上是静态的,请使用Reflection API(仅限PHP5)

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();
}

或者,您可以将这两种方法结合起来

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



2> Don Neufeld..:

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

此函数检查是否已定义给定的类.

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有