![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PHP
文章平均质量分 89
Reiter_Wong
这个作者很懒,什么都没留下…
展开
-
php随机发红包问题
一、随机发红包,100元随机分给10个人:<?phpfunction hongBao($total, $num, $min = 0.01) { $array = []; for ($i = 1; $i < $num; $i++) { // 剩余的每个人最多可以平均分配到多少钱 $safe_total = ($total - ($num - $i) * $min) / ($num - $i);//随机安全上限 $money = mt_rand($min * 100, $原创 2020-05-11 13:54:57 · 274 阅读 · 0 评论 -
Laravel自动取消订单
最近的业务需要做15分钟内未完成支付就自动取消订单的功能,类似的功能还有很多,例如:订单完成后自动确认收货、完成付款5分钟后发送短信通知等等,这些看起来就像定时任务,即多久后去做什么事。 实现上述功能的简单办法有两种:一种是Laravel的任务调度+crontab定时去执行任务;另一种是使用Redis的键过期事件去执行任务。对于业务量小的场景且不严格要求实时性的,推荐第一种方法;...原创 2019-07-10 00:31:58 · 1430 阅读 · 0 评论 -
Laravel限时特价
在维护电商项目的时候,产品大大突然提出做一个限时特价的功能,简单4个字概括了他的需求(Excuse me?能说清楚点吗?),相信很多做电商网站的程序猿都会遇到这样的需求。一、理解需求: 限时特价!某个时间区段内,在起始时间点去做一件事,在终止时间点去做另一件事,最后事物恢复为最初始的状态(即和之前相比没有产生变化)。也就是说,站在用户的角度,在起始时间点用户看到产品的价...原创 2019-07-10 15:24:34 · 270 阅读 · 0 评论 -
Laravel+Redis抢购优惠券
听到“抢购”一词,这就肯定和高并发有关系了。而Redis在高并发方面做得很出色,因此,使用Redis的队列和有序集合就能很好的实现抢购功能。 基本思路:(准备3个队列:优惠券队列、用户抢购队列、抢购成功队列)数据表:优惠券表和用户优惠券兑换表; 点击“发布”后,将优惠券存入redis队列; 将抢购用户存入队列(可进行用户过滤); 用户点击“抢购”按钮后,Ajax访问后台...原创 2019-07-10 19:47:54 · 1117 阅读 · 0 评论 -
简单理解PHP内存机制
首先要理解PHP的内存分配是一次性向系统申请开辟的,PHP自身有个内存管理池,每次申请内存都会先在管理池中寻找合适的内存块,找不到才向系统申请内存,因此,脚本运行的时间越长(例如守护进程运行的脚本),PHP占有的内存也就越大,所以及时释放内存很重要(PHP5.3后引入新的垃圾回收机制),释放后的内存不交回给系统,而是放在内存管理池中继续使用;但是,PHP这种机制可以有效避免了频繁向系统申请...转载 2019-07-06 10:59:03 · 472 阅读 · 0 评论 -
PHP写时分离与写时改变
首先要明确PHP是弱类型语言,所谓的弱类型就是说一开始并不严格规定变量的数据类型,因为PHP可以进行数据类型的转换。也就是说,在PHP中,一个变量可以保存为任何的数据类型。 然后我们开始认识PHP变量中的结构体:zval(这里我们称为“变量容器”)。struct _zval_struct { /* Variable information */ zvalue...转载 2019-07-06 14:03:30 · 279 阅读 · 0 评论 -
PHP与Ajax跨域
简单说一下php解决跨域的问题:在php脚本中设置响应头:注:服务器端Access-Control-Allow-Credentials = true时,参数Access-Control-Allow-Origin的值不能为'*'。服务端:test-a.php , 所在域名:http://a.test.com<?php// 允许多个域名访问$origin = iss...原创 2019-07-28 20:32:58 · 156 阅读 · 0 评论 -
解决Swoole无法使用异步客户端问题(例如‘swoole_redis’ not found)
先说下问题:Fatal error: Uncaught Error: Class 'swoole_redis' not found in xxx相信很多人在给swoole安装hiredis扩展的时候都会遇到这样的问题。原因:从版本4.3.0开始,异步客户端和API被移到单独的PHP扩展 swoole_async 了。因此,我们也就不用装 hiredis 了,只需要安装 swoole_a...原创 2019-07-24 19:40:44 · 3074 阅读 · 1 评论