检查方法类型,如果它是公共的,私有的或受保护的

时间:2013-08-13 05:39:00

标签: php oop

如果它是公共的,私有的还是受保护的,是否可以检查php中的方法类型?

我尝试过的: 我有类,它有方法我可以将这些方法放在url和grt页面中,所以我需要一种方法,如果用户将私有方法放入url然后用户得到一个错误页面,如“拒绝访问”

例如:

if (method_type ('Get_user') == 'private'){
    header ("location: ./")
}

4 个答案:

答案 0 :(得分:4)

只需使用ReflectionMethods即可 检查链接http://www.php.net/manual/en/class.reflectionmethod.php

    $reflection = new ReflectionMethod('className', $functionName);
        if ($reflection->isPublic()) {
            echo "Public method";
        }
       if ($reflection->isPrivate()) {
            echo "Private method";
        }
       if ($reflection->isProtected()) {
            echo "Protected method";
        }

答案 1 :(得分:1)

试试这个,

$check = new ReflectionMethod('class', 'method');
if($check->isPublic()){
    echo "public";
} elseif($check->isPrivate()){
    echo "private";
} else{
    echo "protected";
}

答案 2 :(得分:0)

您可以使用Reflection类,例如 ReflectionMethod::isPrivate

答案 3 :(得分:0)

您可以尝试使用ReflectionMethod,请查看以下链接以获取更多信息: http://php.net/manual/en/class.reflectionmethod.php

此外,您可能会尝试使用is_callable,但这与范围有关,因此根据您所在的类,它会产生不同的结果。您可以在此处查看: http://www.php.net/manual/en/function.is-callable.php