12 2019 档案

PHP设计模式_注册树模式
摘要:通过注册树模式可以更加简单快捷的获取对象,在某个地方实例化了一个对象,可以将这个对象“保存”起来(放入可以全局使用的数组里),用的时候只需要提供 保存对象的时候 的那个标识即可,解决全局共享和交换对象,直接从该数组上获取即可。 为什么要采用注册树模式? 单例模式解决的是如何在整个项目中创建唯一对象实 阅读全文

posted @ 2019-12-30 22:36 孤灯引路人 阅读(186) 评论(0) 推荐(0) 编辑

Http中Content-Type的取值讲解
摘要:在Http请求中,我们每天都在使用Content-type来指定不同格式的请求信息(MediaType,即是Internet Media Type,互联网媒体类型;也叫做MIME类型,在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息),但是却很少有人去全面了解con 阅读全文

posted @ 2019-12-29 17:21 孤灯引路人 阅读(695) 评论(0) 推荐(0) 编辑

控制反转&依赖注入
摘要:控制反转 如果要在A里面使用C,你会怎么做呢?当然是直接去创建C的对象,也就是说,是在A类中主动去获取所需要的外部资源C,这种情况被称为正向的。那么什么是反向呢?就是A类不再主动去获取C,而是被动等待,等待IoC/DI的容器获取一个C的实例,然后反向的注入到A 类中。 依赖注入 依赖注入和控制反转是 阅读全文

posted @ 2019-12-28 21:33 孤灯引路人 阅读(179) 评论(0) 推荐(0) 编辑

理解redis调表
摘要:跳跃表简介 我们先抛开redis,单独了解下跳越表 skiplist数据结构简介 skiplist,顾名思义,首先它是一个list。实际上,它是在有序链表的基础上发展起来的。 我们先来看一个有序链表,如下图(最左侧的灰色节点表示一个空的头结点): 在这样一个链表中,如果我们要查找某个数据,那么需要从 阅读全文

posted @ 2019-12-28 15:40 孤灯引路人 阅读(1133) 评论(0) 推荐(1) 编辑

正确地使用Redis的SETNX实现锁机制
摘要:setNX,是set if not exists 的缩写,也就是只有不存在的时候才设置, 设置成功时返回 1 , 设置失败时返回 0 。可以利用它来实现锁的效果,但是很多人在使用的过程中都有一些问题没有考虑到。例如某个查询数据库的接口因为请求量比较大所以加了缓存,并设定缓存过期后刷新。当并发量比较大 阅读全文

posted @ 2019-12-28 13:25 孤灯引路人 阅读(24998) 评论(2) 推荐(5) 编辑

PHP工厂模式
摘要:工厂模式的意思其实就是提供获取某个对象实例的一个接口,同时使调用代码避免确定实例化基类的步骤,实际上就是建立一个统一的类实例化的函数接口,完事统一调用,统一控制,它是PHP中常用的一种设计模式,一般会配合单例模式一起使用,来加载php类库中的类 //工厂模式 提供获取某个对象实例的一个接口,同时使调 阅读全文

posted @ 2019-12-26 19:40 孤灯引路人 阅读(220) 评论(0) 推荐(0) 编辑

PHP模拟redis字符串结构
摘要:class Sdshrd{ public $len;#已经占用的空间长度 public $free;#还剩余空间数量 public $arr;#存储数据位置 public $defaut=512; public function __construct($value){ $this->arr = n 阅读全文

posted @ 2019-12-25 23:08 孤灯引路人 阅读(134) 评论(0) 推荐(0) 编辑

redis底层内核分析
摘要:1、Redis的数据结构 Redis 的底层数据结构包含简单的动态字符串(SDS)、链表、字典、压缩列表、整数集合等等;五大数据类型(数据对象)都是由一种或几种数结构构成。 在命令行中可以使用 OBJECT ENCODING key 来查看key的数据结构。 2、简单动态字符串SDS redis是使 阅读全文

posted @ 2019-12-25 21:41 孤灯引路人 阅读(548) 评论(0) 推荐(0) 编辑

PHP实现观察者模式
摘要:“观察者模式”的观察者三个字信息量很大。玩过很多网络游戏的童鞋们应该知道,即便是斗地主,除了玩家,还有一个角色叫“观察者"。在我们今天他谈论的模式设计中,观察者也是如此。首先,要有一个“主题”。只有有了一个主题,观察者才能搬着小板凳儿聚在一堆。其次,观察者还必须要有自己的操作。否则你聚在一堆儿没事做 阅读全文

posted @ 2019-12-24 23:07 孤灯引路人 阅读(687) 评论(1) 推荐(1) 编辑

拉链法解决hashtable冲突问题
摘要:拉链法解决冲突。拉链法解决冲突的做法是将所有的相同Hash值的key放在一个链表中,比如key3和key14在hash之后都是0,那么在数组的键为0的地方存储这两个值,形式是链表。如果不能理解我的文字,请看下面的示例,看一下打印信息就明白了。拉链法是什么,就是链表。 class HashNode{ 阅读全文

posted @ 2019-12-24 23:02 孤灯引路人 阅读(1078) 评论(0) 推荐(0) 编辑

php实现hashTable
摘要:Hash表作为最重要的数据结构之一,也叫做散列表。使用PHP实现Hash表的功能。PHP可以模拟实现Hash表的增删改查。通过对key的映射到数组中的一个位置来访问。映射函数叫做Hash函数,存放记录的数组称为Hash表。 Hash函数把任意长度的和类型的key转换成固定长度输出。不同的key可能拥 阅读全文

posted @ 2019-12-24 22:04 孤灯引路人 阅读(454) 评论(1) 推荐(0) 编辑

二叉树遍历
摘要:class Node { public $data; public $left; public $right; public function __construct($data){ $this->data=$data; } } class CreateTree{ public $tree; //二 阅读全文

posted @ 2019-12-24 20:04 孤灯引路人 阅读(141) 评论(0) 推荐(0) 编辑

安装php多进程模块pcntl(一)
摘要:在使用函数pcntl_fork()时报错 Fatal error: Uncaught Error: Call to undefined function pcntl_fork()....,原因是没有安装pcntl扩展包,有两种解决方式,一种是在编译php的时候加上./configure --enab 阅读全文

posted @ 2019-12-24 16:30 孤灯引路人 阅读(523) 评论(0) 推荐(0) 编辑

单例模式
摘要:单例模式的定义:保证一个类只有一个实例,并提供一个访问它的全局访问点 class Singleton { //创建静态私有的变量保存该类对象 static private $instance; //防止使用new直接创建对象 private function __construct(){} //防止 阅读全文

posted @ 2019-12-24 11:21 孤灯引路人 阅读(123) 评论(0) 推荐(0) 编辑

循环链表
摘要:class Node{ public $data=null; public $next = null; public function __construct($data=null){ $this->data = $data; } } class LinkdList{ public $header= 阅读全文

posted @ 2019-12-24 10:50 孤灯引路人 阅读(252) 评论(0) 推荐(0) 编辑

双向链表
摘要:class Node{ public $data=null; public $next = null; public $prev=null; public function __construct($data=null){ $this->data = $data; } } class BubbleL 阅读全文

posted @ 2019-12-24 10:48 孤灯引路人 阅读(104) 评论(0) 推荐(0) 编辑

单项链表
摘要:class Node{ public $data=null; public $next=null; public function __construct($data=null){ $this->data = $data; } } class LinkNode{ public $header=nul 阅读全文

posted @ 2019-12-24 08:09 孤灯引路人 阅读(110) 评论(0) 推荐(0) 编辑

[alv]平衡二叉树
摘要:class AVLNode{ public $data; // 节点数据 public $left = null; // 左子结点 public $right = null; // 右子节点 public $bf = 0; // 平衡因子BF public $parent = null; // 存储 阅读全文

posted @ 2019-12-24 08:07 孤灯引路人 阅读(125) 评论(0) 推荐(0) 编辑

大文件归并排序
摘要://大文件排序 function countsLines($path){ $fd = fopen($path,"r"); $total=0; while(!feof($fd)){ $total++; fgets($fd); } return $total; } $filePath = "./file 阅读全文

posted @ 2019-12-24 08:06 孤灯引路人 阅读(353) 评论(0) 推荐(0) 编辑

快速排序查找匹配元素最前面是否有对应得元素
摘要:$arr = [1,2,3,3,4,5,6]; function binSearch($arr,$num,$start,$end){ if($start > $end){ return -1; } $mid = floor(($start+$end)/2); $midValue = $arr[$mi 阅读全文

posted @ 2019-12-24 00:20 孤灯引路人 阅读(125) 评论(0) 推荐(0) 编辑

二分查找
摘要:$nums = [1, 2, 3, 4, 5, 6]; $num=5; $start = 0; $end = count($nums)-1; echo binary_search($nums,$num,$start,$end); function binary_search($nums,$num,$ 阅读全文

posted @ 2019-12-24 00:19 孤灯引路人 阅读(140) 评论(0) 推荐(0) 编辑

冒泡排序
摘要:$arr = [100,3,5,6,90,10]; for($i=0;$i<count($arr)-1;$i++){ for($j=0;$j<count($arr)-$i-1;$j++){ if($arr[$j] > $arr[$j+1]){ $tmp = $arr[$j]; $arr[$j]=$a 阅读全文

posted @ 2019-12-24 00:18 孤灯引路人 阅读(76) 评论(0) 推荐(0) 编辑

快速排序
摘要:$arr= array(2,13,42,34,56,23,67,365,87665,54,68,3); $info = quick_sort($arr); print_r($info); function quick_sort($arr){ if(count($arr) <= 1){ return 阅读全文

posted @ 2019-12-24 00:16 孤灯引路人 阅读(127) 评论(0) 推荐(0) 编辑

归并排序
摘要:$arr=array(19,7,5,1,3,10); $tmp = mergeSort($arr); print_r($tmp); function mergeSort($arr){ $start = 0; $end = count($arr)-1; if($end == 0){ return $a 阅读全文

posted @ 2019-12-24 00:15 孤灯引路人 阅读(115) 评论(0) 推荐(0) 编辑

选择排序
摘要:$nums = [4, 5, 6, 3, 2, 1]; for($i=0;$i<count($nums);$i++){ $min = $i; for($j=$i+1;$j<count($nums);$j++){ if($nums[$j] < $nums[$min]){ $min = $j; } } 阅读全文

posted @ 2019-12-24 00:13 孤灯引路人 阅读(81) 评论(0) 推荐(0) 编辑

插入排序
摘要://插入排序 $arr = [2, 3, 1, 6, 4, 7, 5, 9]; for($i=1;$i<count($arr);$i++){ $key = $arr[$i]; $pos = $i; while($pos > 0 && $arr[$pos-1] > $key){ $arr[$pos]= 阅读全文

posted @ 2019-12-24 00:12 孤灯引路人 阅读(94) 评论(0) 推荐(0) 编辑

位图排序
摘要:$bitmap=array_fill(0,1,0); $arr =[1,4,3,6,7]; $size = PHP_INT_SIZE * 8; foreach ($arr as $key => $value){ $index = floor($value/$size); $pos = $value% 阅读全文

posted @ 2019-12-24 00:11 孤灯引路人 阅读(135) 评论(0) 推荐(0) 编辑

二叉搜索树实现
摘要:class Node { public $data; public $left; public $right; public function __construct($data){ $this->data=$data; } } class CreateTree{ public $tree; //二 阅读全文

posted @ 2019-12-23 23:50 孤灯引路人 阅读(240) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示