现在的位置: 首页 > 综合 > 正文

PHP快速定位函数所在扩展模块(顺带说下语言结构和内置函数)

2017年12月26日 ⁄ 综合 ⁄ 共 715字 ⁄ 字号 评论关闭

导读:在快要入睡前,想起上个月发生的一件事儿。还是和session有关。在这之前,我要找一个函数看源码,都打开源码,打开.h文件.c文件,慢慢寻找。找到了再看源码。效率奇低不说,等我找到函数在哪个扩展(有些并不好找,即使你看到手册也不明白),我已经很困了。嘿嘿,终于让我翻出一个方法。

1 在说具体的方法前,先记说一下 语言结构 和 内置函数。

语言结构,记得一句话就好:和if神马的是同类;

内置函数,由代码段组成的可被重写、调用的已经编译在运行环境里的一种对应关系(有点装了,这个是结合数学里的函数定义的解释,自己乱凑的)。

整理一个php语言结构——容易被误解的那些:

array
die
echo
empty
include(include_once是fun)
isset(和is_null函数牵扯)
listrequire(require_once是fun)
unset

2 CLI下(不愿意写一个脚本,这样比较装,嘿嘿嘿嘿)

php -r '$m=get_loaded_extensions();foreach($m as $mn){$f=get_extension_funcs($mn); if(in_array('mysql_query',$f)){ exit($mn); } }'

注意和你使用的外壳运行环境相关,上面语句在xshell下。如果在win cmd下,是报错的。应该使用:

php -r "$m=get_loaded_extensions();foreach($m as $mn){$f=get_extension_funcs($mn); if(@in_array('mysql_query',$f)){ exit($mn); } }"

想起我的源码阅读计划,汗……天下…………

抱歉!评论已关闭.