PHP-请教如何使用正则分析出给定PHP类中的成员变量
如下类,希望能够通过正则表达式分析出该类的所有成员变量(包括名称以及初始值),并组成数组返回,小生使用
preg_match_all('/var($.*)s*=s*([sS]*);s*n/i', $str), $match);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
个人觉得你这个完全没有必须用正则来取数据,一样不一定完全正确,二来,可以通过get_class_vars函数得到,也可能通过PHP的反射技术中的ReflectionClass得到类的所有成员属性和成员方法,你这个只要用ReflectionClass的getProperties方法就能得到你想要的结果
var_dump(json_decode(json_encode(new GeSHi()),true)); //将对象通过json转换成数组
var_dump(get_class_vars(GeSHi)); //直接使用 get_class_vars();
var_dump(new GeSHi()); // 直接打印对象,是一个对象,但是也能看到 属性啊。
get_class_vars()
这个用于分析已经引用的类是可行的,
如果只是分析源码,
没必要把类引入进来。
preg_match_all('/vars+$(w+)s*=s*(.*);s*n/Uis', $content, $match);
其实感觉用get_class_vars()函数就可以吧