关于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//)//)这个function会输出所有的常量,因为返回的内容很多,所以用...表示有很多系统或者扩展常量,我们在代码中定义的常量都会全部进入[user]键名下.该函数接受一个参数,当该参数为真时,该参数告诉函数返回一个多维数组,该数组在第一维中按键排序,在第二维中按常量及其值排序。默认为false,返回一维数组,即常量名作为键名,它们的值作为键值。get_extension_funcs()函数返回扩展模块中包含的所有方法的名称。print_r(get_extension_funcs("swoole"));//数组//(//[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//数组//(//[0]=>Core//[1]=>phpdbg_webhelper//[2]=>date//[3]=>libxml//[4]=>openssl//[5]=>pcre//[6]=>sqlite3//...//[65]=>imagick//[66]=>swoole//[67]=>vld//[68]=>ZendOPcache//)这个函数的作用是不是和我们在命令行使用-m查看当前系统安装的扩展是一样的。没错,它们是同一个功能,都返回这样一个扩展安装列表。在一些开源的cms系统中,当需要检查当前安装环境是否满足要求时,可以使用该功能进行检测。get_include_path()和get_included_files()这两个函数返回当前include_path的配置信息,返回已经包含或需要的文件列表。echoget_include_path(),PHP_EOL;//.:/usr/local/Cellar/php/7.3.0/share/php/pearechoini_get('include_path'),PHP_EOL;//.:/usr/local/Cellar/php/7.3.0/share/php/pearget_include_path()很简单,它的作用其实和echoini_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/blogarticle/dev-blog/php/202005/source/PHP选项参数相关的一些函数(1).php//[1]=>/Users/zhangyue/MyDoc/blogarticle/dev-blog/php/202005/source/动态查看和加载PHPextensions.php//)get_included_files()也是一个非常简洁直观的函数,返回的是我们当前加载了哪些文件。当前运行的文件永远是第一个,也就是说这个函数至少会返回一个自己的文件路径。我们可以尝试在Laravel或者其他框架的入口文件或者控制器中使用这个函数来打印他们加载文件的个数,其实可以帮助我们理解这个框架的加载执行情况。get_resources()var_dump(get_resources());//array(3){//[1]=>//resource(1)类型(流)//[2]=>//resource(2)类型(stream)//[3]=>//resource(3)类型(stream)//}$fp=fopen('1.txt','r');var_dump(get_resources());//数组(4){//[1]=>//类型(流)的资源(1)//[2]=>//类型(流)的资源(2)//[3]=>//资源(3)oftype(stream)//[5]=>//resource(5)oftype(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===========各媒体平台均可搜索【硬核项目经理】
