php高级
Ethanhuyi
把技术当兴趣,欢迎关注我的博客交流;曾任职51.com平台后端全栈开发,江西省交科院有限公司前端开发。
展开
-
php中抽象类与接口的区别
1,抽象类继承extends 接口的继承implements 2,接口没有数据成员,但是抽象类有数据成员,而且可以进行封装 3,接口没有构造函数 4,接口中只能使用public修饰符,抽象类可以使用public,protected,private 5,一个类可以继承多个接口,但是只能继承一个抽象类。 例子: interface staff_i1 //接口1原创 2017-02-22 22:40:53 · 258 阅读 · 0 评论 -
5种常见的设计模式
策略模式简介:策略模式是对象的行为模式,用意是对一组算法的封装。动态选择需要的算法并且使用。策略模式指的是程序中涉及决策控制的一种模式。策略模式功能非常强大。策略模式的三个角色:1,抽象策略角色,2,具体策略角色3,环境角色如果我需要在早晨从家里出发去上班,我可以有几个策略考虑:我可以乘坐地铁,乘坐公交车,走路或其它的途径。每个策略可以得到相同的结果,但是使用了不同的资源。代码:<?phpa...原创 2018-05-04 17:22:30 · 2616 阅读 · 0 评论 -
php实现简易的搜索功能
好久没有看代码了,手生了,一直在盘算着转行的事; 1,今天看了一个接手的项目的源代码,发现一小段简易搜索的代码2,/** * 简易搜索 * @param $params * @param $black * @return array */ protected function _commonSearch($params, $bl原创 2017-11-19 16:55:15 · 6597 阅读 · 0 评论 -
curl_init()和curl_multi_init()多线程的速度比较
php中curl_init()的作用很大,尤其是在抓取网页内容或文件信息的时候,例如之前文章curl获得header检测GZip压缩的源代码就介绍到curl_init()的强大。 curl_init()处理事物是单线程模式,如果需要对事务处理走多线程模式,那么php里提供了一个函数curl_multi_init()给我们,这就是多线程模式处理事务的函数。 curl_init()与cur转载 2017-07-28 17:56:33 · 776 阅读 · 0 评论 -
php模拟并发
并发请求理论描述:假设有一个client,程序逻辑是要请求三个不同的server,处理各自的响应。传统模型当然是顺序执行,先发送第一个请求,等待收到响应数据后再发送第二个请求,以此类推。就像是单核CPU,一次只能处理一件事,其他事情被暂时阻塞。而并发模式可以让三个server同时处理各自请求,这就可以使大量时间复用。 画个图更好说明问题: 前者为阻塞模式,忽略请求响应等时间,总耗时为700转载 2017-07-25 17:16:46 · 657 阅读 · 0 评论 -
php 高并发解决(商城抢购问题2)
方案一:使用消息队列来实现 可以基于例如MemcacheQ等这样的消息队列,具体的实现方案这么表述吧 比如有100张票可供用户抢,那么就可以把这100张票放到缓存中,读写时不要加锁。 当并发量大的时候,可能有500人左右抢票成功,这样对于500后面的请求可以直接转到活动结束的静态页面。进去的500个人中有400个人是不可能获得商品的。所以可以根据进入队列的先后顺序只能前100个人购买成功。转载 2017-05-02 11:53:12 · 6049 阅读 · 0 评论 -
php 高并发解决(商城抢购问题1)
最近在做一个团购项目,遇到个问题,就是在抢购、秒杀、抽奖等活动时,库存数量有限,但是同时下单人数超过了库存数量,就会导致商品超售问题。那么我们怎么来解决这个问题呢,我的思路如下: sql1:查询商品库存 if(库存数量 > 0) { //生成订单... sql2:库存-1 } 当没有并发时,上面的流程看起来是如此完美,假设同时两个人下单,而库存只有1个了,在sql1阶段转载 2017-05-02 11:52:12 · 914 阅读 · 0 评论 -
php: CGI faseCGI PHP-FPM | laravel启动过程 | php依赖注入
(1)wish123 《laravel的启动过程》:http://www.cnblogs.com/wish123/p/4756669.html (2)veda《概念了解:CGI,FastCGI,PHP-CGI与PHP-FPM》:http://www.nowamagic.net/librarys/veda/detail/1319 (3)田靖荣 《原来如此!一分钟了解什么是框架》:http转载 2017-04-18 23:43:26 · 699 阅读 · 0 评论 -
复习下单例设计模式(实现数据库连接,以免多次实例化)
php 2 class DBHelper 3 { 4 private $link; 5 static private $_instance; 6 7 // 连接数据库 8 private function __construct($host, $username, $password) 9 { 10 $this->link转载 2017-03-22 14:42:55 · 815 阅读 · 0 评论 -
PHP合成图片怎么保证清晰度(在phpqrcode中生成带Logo的二维码)
在phpqrcode中生成带Logo的二维码 保持logo的清晰度: PHP合成图片主要用的的函数 : imagecreatefromstring //返回一个图像标识符,其表达了从给定字符串得来的图像。图像格式将自动检测,只要 PHP 支持:JPEG,PNG,GIF,WBMP 和 GD2。 imageCreatetruecolor //返回一个图像标识符,代表了一...转载 2018-10-26 15:32:05 · 2520 阅读 · 0 评论