usort(array,myfunction); 定义和用法 usort() 使用用户自定义的比较函数对数组进行排序。 $a <=> $b //PHP7新增 太空船运算符(组合比较符)当$a小于、等于、大于 $b时 分别返回一个小于、等于、大于0的 int 值。 实例: public function ar...

thinkphp6通过依赖注入实现表单统一验证
项目安装就我做声明了,自己按照文档安装即可 ThinkPHP6.0完全开发手册 官方案例: 可以直接在验证器类中使用message属性定义错误提示信息,例如: namespace app\validate; use think\Validate; class User extends Validate { protec...

phpstorm最新激活码2020年IntelliJ IDEA最新注册码(JetBrains PhpStorm/JetBrains PyCharm/JetBrains GoLand )通用注册码
2020年1月13日亲测可用,特拿来分享。 详情直达:phpstorm idea 激活码 - IntelliJ IDEA 注册码(JetBrains PhpStorm/JetBrains PyCharm/JetBrains GoLand )通用注册码
常见mysql面试题,有没有发现,面试的时候MySQL题偏多?
1. 如何设计一个高并发的系统 ① 数据库的优化,包括合理的事务隔离级别、SQL语句优化、索引的优化 ② 使用缓存,尽量减少数据库 IO ③ 分布式数据库、分布式缓存 ④ 服务器的负载均衡 2. 锁的优化策略 ① 读写分离 ② 分段加锁 ③ 减少锁持有的时间 ④ 多个线程尽量以相同的顺序去获取资源 等等,这些都不是绝对...
php常用小知识
如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。 $row 的速度是$row的7倍。 echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo $str1,$str2。 在执行for循环之前确定最大循环数,不要每循环一次都计算...

PHP消息队列如何处理订单和配送
在项目开发者经常会遇到『给用户群发短信』、『订单系统有大量的日志需要记录』或者在秒杀业务的时候服务器无法承受瞬间并发的压力。 这种情况下,我们怎么保证系统正常有效的运行呢? 这个时候,我们可以引入一个叫『消息队列』的概念来解决上面的需求。 消息队列的概念、原理和场景 在高并发的时候,程序往往无法做到及时的处理。我们引入...
phpexcel中文手册
首先到phpexcel官网上下载最新的phpexcel类,下周解压缩一个classes文件夹,里面包含了PHPExcel.php和PHPExcel的文件夹,这个类文件和文件夹是我们需要的,把classes解压到你项目的一个目录中,重名名为phpexcel,开始喽,(代码都摘自自带实例) require_once './...

Yii+layui实现图片上传
本文讲述的是不基于YII插件生成页面的图片上传方式,有问题的地方,还请多多指教: view页面代码如下: <?php use yii\helpers\Url; use yii\helpers\Html; ?> <?=Html::jsFile('@web/layui/layui.js')?> &l...
一个案例来认识PHP经典设计模式
<?php /** * 单例模式 */ class Site { //属性 public $siteName; //本类的静态实例 public static $instance = null; //禁用掉构造器 private function __construct($siteName) { $this-&g...

最简单的实现PHP树结构数据、实现无限分级
测试数据如下图所示: 查询出的数据直接调用此方法: function getTreeTest($data, $pId=0,$level=0) { $tree = ''; foreach($data as $k => $v) { if($v == $pId) { //父亲找儿子 $v = $level; $v = ...

Navicat12破解方法 亲测有效
上图所示为已经破解成功! 破解工具下载地址:点击这里 操作方法: 首先先 把网络断掉!把网络断掉!把网络断掉! 现在开始激活,每一步都很重要。 以管理员身份运行此注册机,打开注册机后,按以下步骤进行操作: Patch勾选Backup、Host和Navicat v12,然后点击Patch按钮, 默认勾选。找到N...
PHP数字补零的两种方法
str_pad 顾名思义这个函数是针对字符串来说的这个可以对指定的字符串填补任何其它的字符串 //例如: str_pad('带填补的字符串','填补后的长度','填补字符串','填补位置') /** * 其中填补后的长度必须是个正整数,填补位置有三个选项, * 左边:STR_PAD_LEFT, * 右边:STR_PAD...

thinkphp5指定值进行排序和多条件排序
$contract_types = "2,1,3"; $exp = new \think\Db\Expression('field(contract_type,'.$contract_types.')'); $tpl = Db::name('contract')->order($exp)->select()...
高并发下,php与redis实现的抢购、秒杀功能
抢购、秒杀是如今很常见的一个应用场景,主要需要解决的问题有两个: 1 高并发对数据库产生的压力 2 竞争状态下如何解决库存的正确减少("超卖"问题) 对于第一个问题,已经很容易想到用缓存来处理抢购,避免直接操作数据库,例如使用Redis。 重点在于第二个问题 常规写法: 查询出对应商品的库存,看是否大于0,然后执行生成...
TP5 post接收数组出错 – ThinkPHP框架
input函数支持对变量使用修饰符功能,可以更好的过滤变量。 用法如下: input('变量类型.变量名/修饰符'); 或者 Request::instance()->变量类型('变量名/修饰符'); 例如: input('get.id/d'); input('post.name/s'); input...