我想在选择特定脚本文件后将所有类及其方法名称以及方法类型(public,private,protected)输出到数组。
这将用于创建权限系统,其中管理员可以指定特定用户组可以访问的类。
例如在脚本文件test.php中说它有以下内容:
class test{
public function dostuff(){
}
private function hide(){
}
}
它应该给我一个这样的列表: 上课:考试 方法: dostuff(公共) 隐藏(私人)
答案 0 :(得分:3)
好的,这就是我的建议:
// Get new class name
$classes = get_declared_classes();
include 'your_php_file.php';
$diff = array_diff(get_declared_classes(), $classes);
$class = reset($diff);
// Get class's methods
$methods = get_class_methods($class);
// Print them out
echo "Class : ".$class;
foreach ($methods as $method) {
echo "$method\n";
}
答案 1 :(得分:1)
<?php
$file="test_class.php";
$fp = fopen($file, 'r');
$class = $buffer = '';
$method = $buffer = '';
while(!feof($fp))
{
$buffer .= fread($fp, 512);
if (preg_match('/class\s+(\w+)(.*)?\{/', $buffer, $matches)) {
$class = $matches[1];
//break;
}
if (preg_match_all('/function\s+(\w+)(.*)?\{/', $buffer, $match)) {
$method = $match[1];
//print_r($match);
//break;
}
}
echo "class:".$class."<br />";
//print_r($method);
foreach($method as $key=>$val)
{
echo "method : ".$val."<br />";
}
?>