php
php基础知识等
yzbz
技术菜鸟,穷屌丝
展开
-
docker启动kafka
使用docker-compse编排,启动zookeeper、kafka、kafka-manager三个容器,并分享php代码测试kafka生产和消费。原创 2022-02-26 11:56:58 · 2747 阅读 · 0 评论 -
由于redis导致的系统奔溃
背景上一篇说到,由于用户激增,已将redis改为集群redis,但是遇到了新的问题,忽然db链接数爆了,报警信息不断,cpu爆了,应用打不开了。原创 2021-11-02 09:14:23 · 614 阅读 · 0 评论 -
redis升级集群
背景由于用户不断增加,业务功能不断积累,redis的使用也变的越多,单机扩展内存已不是最优解,采用了升级redis集群的方案。官方地址redis集群兼容说明兼容改动1.keys 命令不再允许使用,可改用基于游标的迭代器来完成 scan,最后我会列举使用示例。2.exists 命令也不再允许使用,可通过ttl判断时间来替代,时间复杂度为O(1),或者根据hash,set等类型长度来替代。3.multi事务中,需要增加watch。这也暗藏着一个bug。主要修改的是这三个命令。scan示例cl原创 2021-11-01 09:55:56 · 931 阅读 · 0 评论 -
centos上基于yum安装lnmp
场景基于centos 7,初始化系统进行如下步骤安装nginx安装yum install nginx -y安装完成后,开启nginx服务systemctl start nginx.servicechown nginx.nginx /usr/share/nginx/html/ -R安装mysql数据库yum install mariadb-devel mariadb mariadb-server安装完成后,开启mysql服务systemctl start mariadb.servic原创 2021-10-28 09:49:25 · 266 阅读 · 0 评论 -
redis 并发导致list重复问题
//模拟并发list重复问题 public function test() { $r = new r('api'); $r_key = 'test_zp'; //增加锁key $r_key_lock = $r_key . '_lock'; echo 'start' . time(); if (!$r->EXISTS($r_key)) { //todo 模拟执行sql $data = [1 ,2,3]; echo 'sleep' . time(); sl原创 2021-06-09 16:53:08 · 1565 阅读 · 0 评论 -
什么是依赖注入?
什么是依赖注入?就是把有依赖关系的类放到容器中,然后解析出这些类的实例,就是依赖注入。目的是实现类的解耦。控制反转就是面向对象编程中的一种设计原则,用来减低代码之间的耦合度。其中最常见的方式叫做依赖注入。举例:a依赖b,但a不控制b的创建和销毁,只能使用b,那么b的控制权交给a之外处理,这叫控制反转(IOC),而a要依赖b,必然要使用b的instance如下:通过a的接口,把b传入; 通过a的构造,把b传入; 通过设置a的属性,把b传入;这个过程叫依赖注入。那么依赖方式又有哪些原创 2020-10-29 15:20:48 · 2432 阅读 · 0 评论 -
接口和抽象类有什么区别?
接口和抽象类都是继承树的上层,他们的共同点如下:1) 都是上层的抽象层。2) 都不能被实例化3) 都能包含抽象的方法,这些抽象的方法用于描述类具备的功能,但是不比提供具体的实现。他们的区别如下:1) 在抽象类中可以写非抽象的方法,从而避免在子类中重复书写他们,这样可以提高代码的复用性,这是抽象类的优势;接口中只能有抽象的方法。2) 一个类只能继承一个直接父类,这个父类可以是具体的类也可是抽象类;但是一个类可以实现多个接口。Java语言中类的继承是单继承原因是:当子类重写父类方法的时候,或者隐藏转载 2020-10-29 14:44:37 · 289 阅读 · 0 评论 -
PHP闭包的三种方式
PHP闭包的三种方式匿名函数PHP的闭包就是依赖于匿名函数1. 声明一个匿名函数$func = function(){ }2. 使用匿名函数$func = function($param){ echo $param;} $function('调用匿名函数'); 连接闭包和外界变量的关键字:USE function getMoney(){ $rmb = 1; $func = function() us转载 2020-10-10 09:35:48 · 537 阅读 · 0 评论 -
php试题网试题-2
1.javascript中,Math函数floor,round,ceil的区别round四舍五入floor往小取整ceil往大取整2.echo count('abc');输出结果是13.运算符优先级的坑$bA = true;$bB = false;$b1 = $bA and $bB;$b2 = $bA && $bB;var_dump($b1);var_dump($b2);var_dump($bA and $bB);var_dump($bA &原创 2020-09-22 08:29:43 · 185 阅读 · 0 评论 -
php试题网试题-1
1.查看僵尸进程ps aux|grep Z查看一下进程stat的参数有哪些,仅查看一下前十条的结果。详细介绍一下STAT参数的含义S休眠状态进程s主进程包含子进程<优先级高的进程N优先级较低的进程l多进程的2....原创 2020-09-17 13:28:26 · 458 阅读 · 0 评论 -
php中include与require的差别
问题1:include和require的区别1.两个函数导入存在的文件时,效果是相同的2.当导入不存在的文件时,include会有一个警告,但是程序还需继续执行,而require则会触发致命错误停止程序的执行回答2的结果如图;先上测试代码<?phptry{ include 'test1.php'; echo "progress is here\n"; die;}catch (Exception $e) { echo 'this is ca.原创 2021-11-01 09:07:03 · 185 阅读 · 0 评论 -
使用php进行http的base认证
背景在初期使用svn的时候都会直接用浏览器打开,会有认证的窗口。想着是否能用php来实现这个功能。直接上代码代码<?phpif (!isset($_SERVER['PHP_AUTH_USER'])) { header('WWW-Authenticate: Basic realm="登录一下"');}else{ echo $_SERVER['PHP_AUTH_USER'] ; echo $_SERVER['PHP_AUTH_PW']; die();}原创 2020-09-16 09:02:19 · 848 阅读 · 0 评论 -
php7部分改变(2)
简介介绍部分php7的新增特性和define和const的差别标量类型声明function sumOfArgs(string ...$args){ return array_sum($args);}var_dump(sumOfArgs(2, '3', 4.1));//int 类型返回的是9//string 类型返回的是9.1结果如下:返回值类型声明function testReturnType(string ...$args): string{原创 2020-08-29 06:40:57 · 116 阅读 · 0 评论 -
php7部分改变(1)
1.间接使用方法的不同$foo = 'name';$name = [];$name['test']['name'] = 'yzbz'; //php7的结果echo $$foo['test']['name']; //输出结果是 'yzbz'$foo['test']['name'] = 'yzbz';$yzbz = 'php5_v5alue'; //php5的结果echo $$foo['test']['name']; //输出结果是 'php5_v5alue'结论php7是从左到右原创 2020-08-19 23:20:21 · 143 阅读 · 0 评论 -
wordpress新增一个列表页
背景新安装的wordpress,想着新增一个功能分类,功能体现就是首页菜单增加一个菜单,然后菜单链接进入是一个列表页,列表也是一堆文章,然后可以点击进入详情页查看文章。就这样的一个需求。解决方案1.使用了这个插件 Simple Post Series,先要安装并启用,如下图2.安装完成后会在左侧文章菜单下多出两个二级菜单,专题和专题文章编辑,如下图3.然后进入专题,先新增一个专题,如下图4.然后节奴专题文章编辑页面,将已编辑完成的文章,拖动到指定专题,如下图5.然后进原创 2020-08-05 19:22:38 · 1766 阅读 · 0 评论 -
php7中对preg_replace内的e不再支持
背景解决方案好记性不如烂笔头原创 2020-07-20 20:14:26 · 615 阅读 · 0 评论 -
php中getopt函数的使用
作用之前的文章有介绍到php的cli模式,这个函数就使用于cli模式,作用就是获取命令行中的参数。语法php手册中的语法介绍 getopt ( string $options [, array $longopts [, int &$optind ]] ) : array参数如下options该字符串中的每个字符会被当做选项字符,匹配传入脚本的选项以单个连字符(-)开头。 比如,一个选项字符串 "x" 识别了一个选项 -x。longopts选项数组。此数组中的每个原创 2020-07-02 17:36:16 · 1399 阅读 · 0 评论 -
php单例模式的使用
什么是单例模式单例模式是常用的设计模式之一,通过单例模式创建的类在当前进程中只有一个实例。原创 2020-06-30 09:54:08 · 233 阅读 · 0 评论 -
php的运行模式-SAPI
SAPI(Server Application Programming Interface)原创 2020-06-28 10:38:32 · 177 阅读 · 0 评论