如果它是公共的,私有的还是受保护的,是否可以检查php中的方法类型?
我尝试过的: 我有类,它有方法我可以将这些方法放在url和grt页面中,所以我需要一种方法,如果用户将私有方法放入url然后用户得到一个错误页面,如“拒绝访问”
例如:
if (method_type ('Get_user') == 'private'){
header ("location: ./")
}
答案 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