发布网友 发布时间:2022-04-06 02:15
共5个回答
懂视网 时间:2022-04-06 06:37
【相关学习推荐:php图文教程】
php判断是否为静态方法的方法:
1、新建文件,创建一个类,并写一个静态方法,一个普通方法:
<?php class Test { public function wzl(){ echo '我是一个普通方法<br>'; } public static function cwh(){ echo '我是一个静态方法<br>'; } } $class = new Test(); $class->wzl(); $class::cwh();
2、使用浏览器访问文件,查看结果:
3、如果我们使用静态方法的访问形式访问普通方法
$class = new Test(); $class::wzl();
结果如下:
4、如果我们使用普通方法的访问形式访问静态方法
$class = new Test(); $class->cwh();
结果如下:
5、此外,通过映射也可以判断,编辑如下:
$rm = new ReflectionMethod('Test','wzl'); var_dump($rm->isStatic()); $rm2 = new ReflectionMethod('Test','cwh'); var_dump($rm2->isStatic());
相关学习推荐:php编程(视频)
热心网友 时间:2022-04-06 03:45
__tostatic() ? __static() 吧~method_exists 第一个参数,可以使用 instance object ,也可以直接传入 classname 不需要实例化。不过没有办法判断是否为 static 方法,也没有办法判断 private/protected/public 访问级别(某些老版本的 PHP 是可以的)。你可以反射一下:[php]function has_static_method($className, $methodName) {? ? $ref = new ReflectionClass($className);? ? if ($ref->hasMethod($methodName) and $ref->getMethod($methodName)->isStatic()) {? ?? ???return true;? ? }}[/php]热心网友 时间:2022-04-06 05:03
这个可以,但需要先实例化成对象,才能进行检测,有没有直接用类名就可以检测的方法热心网友 时间:2022-04-06 06:37
第一个问题:打个比喻~你在百度知道获得了答案,你朋友问你问题,相同的话你是来百度知道再提想问还是把答案直接给他!热心网友 时间:2022-04-06 08:29
听说6有这个啦,但是现在还用不了我用的是5