随着版本的升高,PHP的功能也越来越完善,可用的扩展库和函数也越来越多,因此,我们写程序时也要考虑版本的兼容问题,同时还要考虑服务器(特别是虚拟主机)是否安装了扩展库。
本文介绍的函数其实是PHP手册上本来就有的,但是由于这些函数独立性较强,查找不易,所以单独介绍一下,方便查阅。
1. 获取所有可用的模块 – get_loaded_extensions该函数返回所有已经加载的(可用的)模块。
用法:
1 |
print_r(get_loaded_extensions()); |
2. 获取指定模块的可用函数 – get_extension_funcs 该函数返回指定模块所有可用的函数。传入的参数(模块名称)必须是小写
用法:
1 |
print_r(get_extension_funcs( "gd" )); |
3. 获取所有已经定义的函数 – get_defined_functions 该函数返回所有已经定义的函数,包括内置函数和用户自定义函数。
用法:
1 |
function myrow( $id , $data ){ |
2 |
return " $id $data\n" ; |
3 |
} |
4 |
$arr = get_defined_functions(); |
5 |
print_r( $arr ); |
输出:
01 |
array ( |
02 |
[internal] => array ( |
03 |
[0] => zend_version, |
04 |
[1] => func_num_args, |
05 |
[2] => func_get_arg, |
06 |
[3] => func_get_args, |
07 |
[4] => strlen , |
08 |
[5] => strcmp , |
09 |
[6] => strncmp . |
10 |
. . |
11 |
[750] => bcscale[751] => bccomp |
12 |
)[user] => Array ( |
13 |
[0] => myrow |
14 |
) |
15 |
) |
其中 $arr["internal"] 是内置函数, $arr["user"] 是用户自定义函数。
4. 检查指定函数是否存在 – function_exists 该函数返回指定函数是否已经定义。
用法:
1 |
if (function_exists( 'imap_open' )) { |
2 |
echo "IMAP functions are available.\n" ; |
3 |
} else { |
4 |
echo "IMAP functions are not available.\n" ; |
5 |
} |