对于 PHP 的配置,咱们大多数状况下都是去查看 php.ini 文件或者通过命令行来查问某些信息,其实,PHP 的一些内置函数也能够帮忙咱们去查看或操作这些配置参数。比方之前咱们学习过的 对于php的ini文件相干操作函数浅析 。批改方面的函数就只有 ini_set() ,其余大部分的函数其实都是帮忙咱们进行查问的,明天,咱们就来一一解说这些函数。

get_defined_constants()

返回所有常量的关联数组,键是常量名,值是常量值。

define("MY_CONSTANT", 1);print_r(get_defined_constants(true));// array(//     ……//     [user] => array(//         [MY_CONSTANT] => 1//     )// )

这个函数会输入所有的常量,因为返回的内容很多,所以用 ...... 示意有很多零碎或扩大的定义常量,而咱们在代码中本人定义的常量则会全副进入到 [user] 这个键名下。

这个函数有一个参数,当它为 true 时,让此函数返回一个多维数组,分类为第一维的键名,常量和它们的值位于第二维。而默认状况下是 false ,返回的是一个一维数组,就是常量名作为键名,它们的值作为键值。

get_extension_funcs()

这个函数返回的是扩大模块所蕴含的所有办法名称。

print_r(get_extension_funcs("swoole"));// Array// (//     [0] => swoole_version//     [1] => swoole_cpu_num//     [2] => swoole_last_error//     [3] => swoole_async_dns_lookup_coro//     [4] => swoole_async_set//     [5] => swoole_coroutine_create//     ……//     [35] => swoole_timer_clear//     [36] => swoole_timer_clear_all// )

它的参数就是要查问的扩大名称,这里咱们间接查看本机装置的 Swoole 外面都蕴含那些办法。能够看到,Swoole4.4 中一共蕴含有37个办法函数。

get_loaded_extensions()

这个函数是返回所有已加载的扩大模块列表。

print_r(get_loaded_extensions());  // php -m// Array// (//     [0] => Core//     [1] => phpdbg_webhelper//     [2] => date//     [3] => libxml//     [4] => openssl//     [5] => pcre//     [6] => sqlite3//     ……//     [65] => imagick//     [66] => swoole//     [67] => vld//     [68] => Zend OPcache// )

这个函数的作用是不是和咱们在命令行应用 -m 来查看以后零碎已装置的扩大一样。没错,它们就是雷同的性能,都是返回的这样一个扩大装置状况的列表。在一些开源 cms 零碎中,须要查看以后的装置环境是否符合要求时,就能够用这个函数进行检测。

get_include_path() 和 get_included_files()

这两个函数一个是返回以后 include_path 的配置信息,一个是返回曾经被 include 或 require 进来的文件列表。

echo get_include_path(), PHP_EOL; // .:/usr/local/Cellar/php/7.3.0/share/php/pearecho ini_get('include_path'), PHP_EOL; // .:/usr/local/Cellar/php/7.3.0/share/php/pear

get_include_path() 很简略,它的成果其实就和 echo ini_get('include_path') 是一样的,都是去读取 php.ini 文件中 include_path 的配置值。PHP 在 include 或 require 时,如果没有给定门路,那么它就会先在当前目录中查找,如果没有找到,则会进入这个 include_path 中进行查找。如果仍然没有找到指定的文件,才会报错。这就是 include_path 目录的作用,当然,咱们在日常开发中根本不会用到它,所以这里理解理解即可。

include "动静查看及加载PHP扩大.php";print_r(get_included_files());// Array// (//     [0] => /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202005/source/一些PHP选项参数相干的函数(一).php//     [1] => /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202005/source/动静查看及加载PHP扩大.php// )

get_included_files() 也是十分简洁直观的一个函数,它就是返回咱们以后加载了哪些文件。以后运行时的文件总会在第一条,也就是说,这个函数至多会返回一个本身的文件门路。咱们能够试试在 Laravel 或其余框架的入口文件或者控制器中应用这个函数打印一下它们的加载文件数量,这样其实也能帮咱们了解这个框架的加载执行状况。

get_resources()

var_dump(get_resources());// array(3) {//   [1]=>//   resource(1) of type (stream)//   [2]=>//   resource(2) of type (stream)//   [3]=>//   resource(3) of type (stream)// }$fp = fopen('1.txt','r');var_dump(get_resources());// array(4) {//   [1]=>//   resource(1) of type (stream)//   [2]=>//   resource(2) of type (stream)//   [3]=>//   resource(3) of type (stream)//   [5]=>//   resource(5) of type (stream-context)// }

这个函数返回的是流动资源的状况。比方下面例子中,咱们先打印了这个函数的内容,只有3条数据,而后咱们用 fopen() 加载了一个文件资源,取得了一个资源句柄。这时候再打印这个函数的内容,就会发现多了一条,而且类型是 stream-context 类型的资源句柄。这个函数能够帮咱们在调试的时候查看是否有没有开释的资源操作。

总结

明天先简略的学习了几个函数,其实他们并不是十分罕用的函数,然而通过学习之后,居然发现有不少函数还是能帮忙咱们对系统进行调优或者在迁徙零碎的时候可能疾速检测运行环境的。学习致用才是最胜利的学习,让咱们持续加油吧!

测试代码:

https://github.com/zhangyue0503/dev-blog/blob/master/php/202005/source/%E4%B8%80%E4%BA%9BPHP%E9%80%89%E9%A1%B9%E5%8F%82%E6%95%B0%E7%9B%B8%E5%85%B3%E7%9A%84%E5%87%BD%E6%95%B0.php

===========

各自媒体平台均可搜寻【硬核项目经理】