php method函数命名空间

2020/04/14 posted in  测试
Tags:  #php

最近会用到method_exists函数,判断是否存在此方法,但是调用出了点异常。

原因

use \app\model\ParseAstModel
ParseAstModel::FunctionExpression();
if(method_exists('ParseAstModel','FunctionExpression'))
{
    echo '此方法存在'.lr;
}else{
    echo '此方法不存在'.lr;
}

结果输出此方法不存在

处理

Description

method_exists ( mixed $object , string $method_name ) : bool
Checks if the class method exists in the given object.

object
An object instance or a class name

method_name
The method name

查看函数描述比较简单,主要填对象名称和方法名称即可
函数内部查找不找寻外面的命名空间,故改成

if(method_exists('\app\model\ParseAstModel','FunctionExpression'))

类似这类型的函数,要看清楚手册调用的对象,没new对象的情况下,要写全路径。

还有找到更相似的函数么? _^