PHP冒泡排序

2018-09-04
阅读 2 分钟
1.9k
冒泡排序 对数组$arr = [1,7,5,3,3,2]按从小到大进行排序 {代码...} 比较,逻辑大致是这样的。 当i=0的时候进行第一次冒泡 j=0=> 1-7比较,7比1大,不做改变 [1,7,5,3,3,2] j=1=> 7-5比较,5比7小,交换位置 [1,5,7,3,3,2] j=2=> 7-3比较,3比7小,交换位置 [1,5,3,7,3,2] j=3=> 7-3比较,3比7小,交换位置 [1...

推荐一个php7+ mongodb三方类

2018-09-03
阅读 2 分钟
2.4k
由于项目需要,把项目升级到了php7。但是升级了之后发现mongo扩展不能用了。php7.0以上只支持mongodb扩展了。而mongodb扩展的驱动使用起来比monmgo扩展显得很复杂,啰嗦。在网上找了很久。终于找到了一个比较简洁的mongodb类。语法跟mongo的差不多。清晰,自然。

利用Redis锁解决高并发问题

2018-09-03
阅读 4 分钟
16.3k
setnx 有两个参数。第一个参数表示键。第二个参数表示值。如果当前键不存在,那么会插入当前键,将第二个参数做为值。返回 1。如果当前键存在,那么会返回0。

PHP利用Mysql锁解决高并发

2018-09-03
阅读 3 分钟
2.8k
前面写过利用文件锁来处理高并发的问题的,现在我们说另外一个处理方式,利用Mysql的锁来解决高并发的问题 先看没有利用事务的时候并发的后果 创建库存管理表 {代码...} 创建订单管理表 {代码...} 测试代码 {代码...} 我们预置库存是十个,然后执行ab测试查看结果 {代码...} 得到了订单共有12个,而库存表的库存也减到了...

PHP AES cbc模式 pkcs7 128加密解密

2018-09-03
阅读 2 分钟
4.6k
今天在对接一个第三方接口的时候,对方需要AES CBC模式下的加密。这里简单写一个demo {代码...} 执行test方法 加密结果 {代码...} 解密结果 {代码...}

PHP 利用文件锁处理高并发

2018-09-03
阅读 1 分钟
6.2k
利用flock()函数对文件进行加锁(排它锁),实现并发按序进行。 flock(file,lock,block)有三个参数。 file : 已经打开的文件 lock : 锁的类型 LOCK_SH : 共享锁定(读锁) LOCK_EX : 独占锁定(排它锁,写锁) LOCK_UN : 解锁 LOCK_NB : 如果希望在文件锁定时阻塞进程,那么需要加上该参数 block : 设置为true的时候,锁...

MySQL 分页 Limit 优化

2018-09-03
阅读 4 分钟
4.6k
通常在查询数据的时候,我们都会用到limit分页,因为这样避免了全表查询,会提高查询效率。但是在一个表的数据量多了之后,分页查询会明细的变慢

Redis 应用场景【商品拼团抢购】

2018-09-03
阅读 1 分钟
2.6k
lpush命令:将值插入到列表头部,如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作。 当 key 存在但不是列表类型时,返回一个错误。

MySQL 默认排序真的是按主键来排序的吗

2018-09-03
阅读 2 分钟
37.8k
前两天在工作中遇到一个Mysql排序的问题,在没有加order by的时候,获取的数据顺序是随机的,而不是按照主键排序的。以往我都以往mysql的排序默认是按主键来排序的。这才发现其实不是这样的。

PHP 特性之 trait (二)

2018-09-03
阅读 3 分钟
1.8k
命名冲突如果使用了多个Trait,并且多个Trait中的命名有重复,那么这个时候就会产生一个致命的错误。为了正确的使用这些Trait,我们需要用insteadof来调用这些同名的方法。

PHP 特性之 trait (一)

2018-09-03
阅读 2 分钟
1.8k
在阅读laravel文档的时候看到一个类 是以 Trait声明的。平时在工作中从来没有用过,于是就去看了下官方文档。原来这个类早在php5.4.0就有了。可惜在项目中从来没有用过。

PHP 闭包之变量作用域

2018-09-03
阅读 1 分钟
2.1k
以上结果会输出 hello_php 那么可以看到 $a 被作为了变量 通过use传递给了 匿名函数 func 作为参数使用;如果去掉$a = 'java'的注释,那么以上结果会输出 hello_java

HTTP 详解(二)

2018-09-03
阅读 7 分钟
1.5k
请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:Method Request-URI HTTP-Version CRLF 其中 Method表示请求方法;Request-URI是一个统一资源标识符;HTTP-Version表示请求的HTTP协议版本;CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)。

HTTP 详解(一)

2018-09-03
阅读 3 分钟
1.3k
协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。

PHP 设计模式之工厂模式 (静态工厂模式)

2018-09-03
阅读 3 分钟
2k
由工厂类根据参数来决定创建出哪一种产品类的实例。工厂类是指包含了一个专门用来创建其他对象的方法的类。所谓按需分配,传入参数进行选择,返回具体的类。工厂模式的最主要作用就是对象创建的封装、简化创建对象操作。 简单的说,就是调用工厂类的一个方法(传入参数)来得到需要的类;

PHP 中 call_user_func 的使用

2018-09-03
阅读 1 分钟
4.1k
call_user_func函数类似于一种特别的调用函数的方法,使用方法如下 第一种情况: {代码...} 此时 第一个参数 set_max 作为call_user_func 的回调函数使用,$a=111,$b=222。 第二种情况 {代码...} 此时第一个参数为一个数组 那么 回调就是 a类里面的b方法,num作为参数传到b方法里面。省去了实例化a的过程。说到这里就不得...

PHP中的服务容器与依赖注入的思想

2018-07-02
阅读 3 分钟
3.7k
当A类需要依赖于B类,也就是说需要在A类中实例化B类的对象来使用时候,如果B类中的功能发生改变,也会导致A类中使用B类的地方也要跟着修改,导致A类与B类高耦合。这个时候解决方式是,A类应该去依赖B类的接口,把具体的类的实例化交给外部。

PHP通过反射来得到类,以及一些基本的应用

2018-06-14
阅读 2 分钟
3.8k
这几天在看laravel框架的核心代码。发现大量的使用了反射机制。下面就来简单看看一些反射的应用 {代码...} 下面我们来通过这个反射来得到A的私有属性 {代码...} 这样我们就可以很轻松的获得A的私有属性了。那么执行私有方法应该怎么操作呢。接下来我们先看执行共有方法,执行公有方法比较简单。 {代码...} 这样就可以调...

WEEX-android返回键监听 (使用globalEvent)

2018-06-13
阅读 2 分钟
4.2k
利用weex-android全局监听globalEvent 做的一个双击退出的小功能globalEvent 用于监听持久性事件,例如定位信息,陀螺仪等的变化。全局事件是需要额外APIs 处理的次要 API。你能通过 addEventListener 注册事件监听,当你不再需要的时候,也可以通过 removeEventListener 取消事件监听官方文档

WEEX-android播放背景音乐 (使用module)

2018-06-12
阅读 2 分钟
2.3k
利用weex-android的扩展模块module 做的一个播放背景音乐的小功能 项目需要一个播放背景音乐的功能,网上找了很多都没有一个详细的流程。这里就自己写了一个,仅供参考 首先创建WXEventModule.java 文件,然后在WXApplication.java中注册该模块具体的创建可以参考 官方文档 {代码...} 然后在WXEventModule中增加播放背景...