【php笔记】PHP输出当前进程所有变量/常量/模块/函数/类
1. get_defined_vars(PHP4>=4.0.4,PHP5)—获取由所有已定义变量所组成的数组
【thinkphp】一个自用的.env环境变量动态配置php函数
由于各种问题,动态配置环境变量不一定好使,于是写了个~ /** * 动态配置.env环境变量 * * @param string $key 变量名 支持组 * @param string $value 变量值 * @return void */ public function setEnv(string $key = '', string $value = '') { $file = root_path() . '.env'; $data = ''; if (is_file($file)) { $data = trim(file_get_contents($file)); } if ($data == '') { // 没有内容就直接创建 $data = <<<Env APP_DEBUG = false [APP] DEFAULT_TIMEZONE = Asia/Shanghai [DATABASE] TYPE = mysql HOSTNAME = HOSTPORT = 3306 USERNAME = PASSWORD = DATABASE = PREFIX = CHARSET = utf8 DEBUG = true [LANG] default_lang = zh-cn [REDIS] REDIS_HOSTNAME = PORT = 6379 REDIS_PASSWORD = SELECT = 0 [QUEUE] QUEUE_NAME =Env; } // 修改配置 $key = strtoupper($key); if (strpos($key, '.')) { $arr = explode('.', $key, 2); $key1 = $arr[0]; $key2 = $arr[1]; $start = mb_strpos($data, '[' . $key1 . ']'); if ($start !== false) { // 找到配置组 $str_up = mb_substr($data, 0, $start); $str_lower = mb_substr($data, $start); if (preg_match('/' . $key2 . ' =/', $str_lower)) { // 找到就直接替换 $str_lower = preg_replace('/(\n' . $key2 . ' =(.*)|\n' . $key2 . ' =)/', "\n" . $key2 . ' = ' . $value, $str_lower); $data = $str_up . $str_lower; } else { // 未找到直接在组下面追加 $str_q = '/\[' . $key1 . '\]/'; $str_h = "\[" . $key1 . "\]\n" . $key2 . " = " . $value; $str_lower = preg_replace($str_q, $str_h, $str_lower); $data = $str_up . $str_lower; } } else { // 未找到配置组 追加 $data = $data . "\n[" . $key1 . "]\n" . $key2 . " = " . $value; } } else { // 说明是顶层配置 if (preg_match('/' . $key . ' =/', $data)) { // 直接替换数据 $data = preg_replace('/([\n]{0,1}' . $key . ' = (.*)|[\n]{0,1}' . $key . ' =)/', "\n" . $key . ' = ' . $value, $data); } else { // 追加 $data = $key . " = " . $value . "\n" . $data; } } file_put_contents($file, $data); }
【vscode插件php篇】国人开发php必装效率神器插件推荐
欲先善其事,必先利其器,想要拥有一个高效的开发条件,那么拥有一个好的开发工具和环境是有必要的!!有了下面这些插件,想必会让你bug少了,效率高了,头发也掉的少了!1.函数注释生成插件#可一键生成 支持自动检测函数参数,智能检测数据类型和返回数据类型#使用方法:函数上面一行 敲下/**再回车php docbloker
【php杂谈】 宝塔面板 CentOS 7.x系统Nginx安装swoole教程
网上看了一圈,有些教程全是复制粘贴不全面、要么乱码、反正坑很多于是我这里整理了一下最新的可用教程,顺便帮大家避避坑(我的系统是CentOS7.6+Nginx1.x)
【php杂谈】php如何解决函数引用传参不能为空,使用函数回调和global关键词
php 函数调用有一个引用传参的功能,所谓引用的意思就是你传过来的实参到函数里面,在这个函数里面通过代码改变了这个参数的值,然后这个外部实参的值也会跟着变(变量的内存地址是同一个),这就叫引用传参!但是呢,函数引用参数有一个缺点,就是不能默认为空,也就是调用函数的时候这个引用参数不能省略!那么如何解决这个方法,我们就可以用到回调函数!!经初步测试,php5.6及以上是支持的,其他版本未测试!下面直接上代码