![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
php
文章平均质量分 60
zNULLT
小白一个,慢慢修炼
展开
-
异常处理日志记录
在我们工作当中无法避免bug,为了能快速解决bug,需要能精准快速的定位问题所在。这就需要我们将每次异常日志完整的记录下来,包括传入的参数,在哪个类的哪个方法哪一行报错的在php中常使用getTrace来定位问题所在<?phpfunction test() { throw new Exception;}try { test();} catch(Exception $e) {...原创 2019-09-04 17:04:50 · 991 阅读 · 0 评论 -
范围解析操作符 (::)的理解与应用
范围解析操作符更简单地说是一对冒号,可以用于访问静态成员,类常量,还可以用于覆盖类中的属性和方法。 当在类定义之外引用到这些项目时,要使用类名。 自 PHP 5.3.0 起,可以通过变量来引用类,该变量的值不能是关键字(如 self,parent 和 static)。Example #1 在类的外部使用 :: 操作符<?phpclass MyClass { const ...原创 2018-02-18 17:46:21 · 1777 阅读 · 0 评论 -
PHP新特性-----后期静态绑定
自 PHP 5.3.0 起,PHP 增加了一个叫做后期静态绑定的功能,用于在继承范围内引用静态调用的类。 准确说,后期静态绑定工作原理是存储了在上一个“非转发调用”(non-forwarding call)的类名。当进行静态方法调用时,该类名即为明确指定的那个(通常在 :: 运算符左侧部分);当进行非静态方法调用时,即为该对象所属的类。所谓的“转发调用”(forwarding call)指的是通...原创 2018-02-18 17:05:28 · 350 阅读 · 0 评论 -
大流量高并发解决方案
一.硬件确保所用的服务器内存,CPU,带宽能够支撑大流量高并发二.软件在对应硬件能够支撑的条件下,我们接下来就需要优化软件来实现硬件的最大利用化。就像OS一样,一款好的OS就能发挥硬件的最大利用值。 1.web服务器优化 通过配置相应的配置文件,nginx可以配置对应的反向代理,通过负载均衡达到分流作用。apache可以配置MPM模块详情可以参考这里。进一步的优化可以采用微服务...原创 2018-02-28 10:25:29 · 1142 阅读 · 0 评论 -
php常用几种设计模式的应用场景
1.单例设计模式所谓单例模式,即在应用程序中最多只有该类的一个实例存在,一旦创建,就会一直存在于内存中!单例设计模式常应用于数据库类设计,采用单例模式,只连接一次数据库,防止打开多个数据库连接。一个单例类应具备以下特点:单例类不能直接实例化创建,而是只能由类本身实例化。因此,要获得这样的限制效果,构造函数必须标记为private,从而防止类被实例化。需要一个私有静态成员变量来保存类实例和公开一个能...原创 2016-08-29 16:25:31 · 15799 阅读 · 0 评论 -
OOP的理解与应用
1.OOP理解OOP就是面对对象编程是相对面对过程编程的升级以适应更多的业务场景。AOP面对切面编程是对OOP的再一次升级以适应更加复杂的应用场景。OOP包括抽象,封装,继承,多态四大特征。抽象就是把一些具有公共特征的事物抽象为一个类,例如:把所有的人抽象为人类(human),人类有性别,年龄等属性,有吃饭,运动等行为(方法).封装就是通过private,protected,public等关键字来...原创 2018-02-13 12:01:18 · 1243 阅读 · 0 评论 -
php理解与应用
php是一种解释性(就是不经过编译生成obj文件,而是直接靠虚拟器运行。PHP借助于zend Engine,JAVA借助于JDK。运行流程参考http://blog.csdn.net/z15818264727/article/details/52193703),弱类型(变量类型会跟着变量值变化,不像C语言定义变量时候就需要指定变量类型)语言。在理论上它可以做WEB开发中的所有事情,但是有些问题用它...原创 2018-02-11 11:42:20 · 1230 阅读 · 0 评论 -
PHP反射实际应用
1.自动生成文档根据反射的分析类,接口,函数和方法的内部结构,方法和函数的参数,以及类的属性和方法,可以自动生成文档。<?phpclass Student{ const NORMAL = 1; const FORBIDDEN = 2; /** * 用户ID * @var 类型 */ public $id; ...原创 2018-02-26 11:54:19 · 2206 阅读 · 0 评论 -
PHP----反射
1.反射是什么PHP 5 具有完整的反射 API,添加了对类、接口、函数、方法和扩展进行反向工程的能力。 此外,反射 API 提供了方法来取出函数、类和方法中的文档注释。 请注意部分内部 API 丢失了反射扩展工作所需的代码。 例如,一个内置的 PHP 类可能丢失了反射属性的数据。这些少数的情况被认为是错误,不过, 正因为如此,它们应该被发现和修复。2.怎么用<?php...原创 2018-02-26 11:43:51 · 326 阅读 · 0 评论 -
LNMPS PHP 团队开发 需要用到的相关工具
LNMPS:LINUX+Nginx+Mysql+PHP+elasticsearch+redis1.标准化工具代码(规范、格式等等) (PSR-1、PSR-2、PSR-3、PSR-4、PSR-6等等规范 http://www.php-fig.org/psr/)文档人员等等标准化,统一使用一种格式统一开发环境 lnmp团队开发环境dock转载 2018-01-23 10:47:57 · 214 阅读 · 0 评论 -
Web 金字塔式开发框架分层模型概述
现在的大部分 Web 框架都是使用金字塔式的分层架构,一般这种应用都是阻塞同步 IO 模型的编程实现,理解这种分层架构模型的实质有助于理解框架。因为万变不离其宗,理解这种架构后你不管这种模型如何变化实际上都是在遵守一些约定和规则,那么理解这个模型,只要这个框架是这种架构那么你都会掌握的很快。首先我们从最简单的 MVC 三层架构说起。实际上,一般框架分层就原创 2017-12-25 10:41:26 · 1577 阅读 · 0 评论 -
PHP json_encode 有序无序问题
简说PHP JSON问题(有序无序问题)首先 什么是JSON:通俗的说,它是一种数据的存储格式,就像PHP序列化后的字符串一样。它是一种数据描述。比如我们将一个数组序列化后存放,就可以很容易的反序列化后应 用。JSON也是如此,只不过他搭建的是客户端Javascript和服务端PHP的交互桥梁。我们用PHP生成JSON后的字符串,然后把这个字符串传 给前台Javascript,Java原创 2017-08-09 10:44:55 · 5223 阅读 · 0 评论 -
PHP语言构造器介绍
1.什么是语言结构 语言结构:就是PHP语言的关键词,语言语法的一部分;它不可以被用户定义或者添加到语言扩展或者库中;它可以有也可以没有变量和返回值。 2.语言结构执行速度快的原因 函数都要先被PHP解析器(Zend引擎)分解成语言结构,所以,函数比语言结构多了一层解析器解析,速度就相对慢了 3.php中常见的语言结构有这些echo() exit()print() die() isset() un...原创 2017-06-16 10:25:54 · 877 阅读 · 2 评论 -
LAMP技能图
只是个人学习的一个思维导图,仅供大家参考!就我本人而言,感觉不管学什么语言,真正考验你能力的,还是思想!就是如何解决现实生活或者实际项目中的问题的一套解决流程或者方法!原创 2016-09-23 10:34:18 · 424 阅读 · 0 评论 -
使用ob缓存简单实现页面静态化
<?php //接收新闻id,传统的方法查询数据库并显示数据 $id=intval($_GET['id']); //先判断该新闻对于的静态页面是否存在,如果有,则直接返回,如果 //没有,则查询 $html_file="news-id".$id.".html"; //filemtime($html_file)+30>=time() 保证文件是30秒有效 if(file_exists原创 2016-10-09 09:30:52 · 3139 阅读 · 0 评论 -
PHP的重载
PHP所提供的”重载”(overloading)是指动态地”创建”类属性和方法。我们是通过魔术方法(magic methods)来实现的。 当调用当前环境下未定义或不可访问的类属性或方法时,重载方法会被调用。 所有的重载方法都必须被声明为 public。 **note:**PHP中的”重载”与其它绝大多数面向对象语言不同。传统的”重载”是用于提供多个同名的类方法,但各方法的参数类型和个数不...原创 2018-02-18 17:57:37 · 455 阅读 · 0 评论 -
php实现双向队列
<?phpclass Deque { private $queue = array(); public function addFirst($item) { return array_unshift($this->queue, $item); } public function addLast($item) { ...原创 2018-03-15 09:58:29 · 215 阅读 · 0 评论 -
PHP 7 新特性
1.?:与??比较$a ?? $b ??\ $c NULL 合并操作符 从左往右第一个存在且不为 NULL 的操作数。如果都没有定义且不为 NULL,则返回 NULL。PHP7开始提供。&lt;?php$msg = 0;echo $msg?:'test';输出结果:test相当于empty&lt;?php$msg = 0;echo $msg??'test'...原创 2018-05-17 15:21:22 · 133 阅读 · 0 评论 -
处理多维数组
在实际工作,我们经常会遇到对多维数组的处理,一般就会采用多重循环的方式,直到数组的最里面那一层或者使用递归来处理,在php中可以使用array_walk_recursive来灵活处理 /** * @desc 处理多维数组 * @param array $data 待处理数据 * @param array $field 处理字段数组 */ publi...原创 2019-09-02 17:58:17 · 536 阅读 · 0 评论 -
phpize作用
今天在ubuntu安装php的redis拓展遇到问题安装步骤应用场景在使用php的过程中,我们常常需要去添加一些PHP扩展库。但是重新对php进行编译是比较蛮烦的,所以这时候我们可以使用phpize对php进行添加扩展。并且phpize编译的扩展库可以随时启用或停用,比较灵活。使用方法extention为要挂载的扩展包wget extension.tar.gz下载相应的扩展包并解压。...原创 2019-07-09 16:38:56 · 269 阅读 · 0 评论 -
支付宝手机网站支付
对于对接第三方支付,只想说文档很重要,漏了一步,后期排错真的很费时间。好好读文档,结合自己的项目优化官方给的SDK例子。也可以拿官方的demo在自己服务器先能成功执行完整个流程后,再结合自己项目从sdk抽出自己想要的代码<?php//支付宝手机网站支付(H5支付)//所有的第三方支付都是下单生成支付链接或者表单,然后用户支付,支付成功异步或者同步更新订单信息//服务端需要做的就是下单...原创 2019-06-20 20:17:33 · 454 阅读 · 0 评论 -
php中sprintf函数用法
在使用sprintf过程中,有时候会重复使用后面的参数<?php$num = 5;$location = 'tree';$format = 'The %2$s contains %1$d monkeys. That\'s a nice %2$s full of %1$d monkeys.';echo sprintf($format, $num, $locat...原创 2018-08-21 10:28:32 · 723 阅读 · 0 评论 -
php匿名函数应用场景
匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数(callback)参数的值。当然,也有其它应用的情况。<?php// 一个基本的购物车,包括一些已经添加的商品和每种商品的数量。// 其中有一个方法用来计算购物车中所有商品的总价格,该方法使// 用了一个 closure 作为回调函数。...原创 2018-08-28 10:08:03 · 1265 阅读 · 0 评论 -
php数组向任意位置进行插入,删除,替换操作
array_splice函数可以实现任意位置插入和删除&lt;?php$input = array("red", "green", "blue", "yellow");$x = "black";$y = "purple";// 添加两个新元素到 $inputarra原创 2018-07-27 18:33:38 · 2634 阅读 · 0 评论 -
php中Static(静态)关键字作用
1、什么是static?static 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。但在PHP中用 static 关键字来定义静态方法和属性, 也可用于定义静态变量以及后期静态绑定。 2、为什么要引入static?函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果...原创 2018-07-30 10:22:24 · 4107 阅读 · 0 评论 -
PHP中单引号与双引号的区别
1.说明” ” 双引号里面的字段会经过编译器解释,然后再当作HTML代码输出。 ‘ ‘ 单引号里面的不进行解释,直接输出。 从字面意思上就可以看出,单引号比双引号要快了。2.实战php中,双引号中的变量($var)和特殊字符(\r\n之类)会被转义,单引号中的内容不会被转义(所以效率更高)。<?php$word = 'hello';$hello = "$word...原创 2018-07-19 09:56:06 · 202 阅读 · 0 评论 -
php函数特殊应用
1.用引用传递函数参数<?phpfunction add_some_extra(&$string){ $string .= 'and something extra.';}$str = 'This is a string, ';add_some_extra($str);echo $str; // outputs 'This is a string, ...原创 2018-07-06 19:27:55 · 243 阅读 · 0 评论 -
php关于时间转换问题
在实际开发中,大家都会遇到获取指定时间问题。例如:获取上周,上月的数据。这个时候应该以时间戳为准,使用mktime获取指定时间戳,再通过date()来转化,这样就会解决当遇到跨年,跨月的时候,获取的时间有误差 实例:<?php$now = date('Y/m/d H:i:s', mktime(0,0,0,date('m'),date('d')-7,date('Y')));//七天前...原创 2018-07-18 10:12:58 · 527 阅读 · 0 评论 -
json_encode转义问题
1.应用场景在对接app开发中,统一使用json来进行数据交流。服务端给客户端数据都是json字符串,其中难免会有\n,\r等特殊字符,为防止其被转义成\\n,\\r等,需要json_encode处理时候,请使用双引号对处理字符串2.实践&amp;amp;lt;?phpheader('Content-Type:application/json; charset=utf-8', true, 200...原创 2018-07-17 10:08:10 · 11968 阅读 · 0 评论 -
PDO预处理插入数据注意事项
如果当你使用pdo预处理插入一条数据时候,报错<?php$dsn = 'mysql:dbname=test;host=127.0.0.1';$user = 'root';$password = '';try { $dbh = new PDO($dsn, $user, $password);} catch (PDOException $e) { echo 'C...原创 2018-05-14 17:57:01 · 2048 阅读 · 0 评论 -
服务端编写API总结
1.服务端返回的数据都是最终都是经过json_encode处理的,格式基本上是$response = [ 'code'=&amp;amp;amp;amp;gt; 200, 'msg'=&amp;amp;amp;amp;gt; '请求成功', 'data'=&amp;amp;amp;amp;gt; $data其中$data可以是数组,如果$data为关联数组或者无序数组这会返回为对象关联数组$data = [ '原创 2018-05-14 17:08:24 · 1282 阅读 · 0 评论 -
Xdebug结合IDE远程调试
1.安装Xdebug这里有各个操作系统的安装说明 我以win7为例: 在这个页面文本框内输入phpinfo()内容 Xdebug会为你的开发环境提供最好的建议来安装2.php.ini设置[xdebug];你下载的dll路径zend_extension =&amp;quot;F:/php/php7.0.10/zend_ext/php_xdebug-2.4.1-7.0-vc14-x86_6...原创 2018-05-18 19:32:56 · 806 阅读 · 0 评论 -
高性能apache服务器配置MPM模块
1.启用MPM模块配置文件我们需要在httpd.conf文件中启用该配置文件,如下所示:# Server-pool management (MPM specific)Include conf/extra/httpd-mpm.conf (去掉该行前面的注释符号"#")2.启用MPM模块后找到配置文件进行编辑。在Apace安装目录/conf/ex原创 2016-09-18 16:43:33 · 8451 阅读 · 0 评论 -
Redis和Memcached的区别
1.Redisredis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redi原创 2016-09-16 09:20:01 · 470 阅读 · 0 评论 -
PHP 程序员10条最容易犯的错误
1.不对html实体转义一个基本的常识:所有不可信任的输入(特别是用户从form中提交的数据) ,输出之前都要转意。echo $_GET['usename'] ;这个例子有可能输出:/*更改admin密码的脚本或设置cookie的脚本*/。这是一个明显的安全隐患,除非你保证你的用户都正确的输入。如何修复 :我们需要将"","and" 等转换成正确的HTML表示(', and "转载 2016-07-21 17:40:59 · 646 阅读 · 0 评论 -
几个实用的 PHP 正则表达式
1.从一个字符串中 突出某个单词这是一个非常有用的在一个字符串中匹配出某个单词 并且突出它,非常有效的搜索结果原创 2016-07-21 15:08:45 · 375 阅读 · 0 评论 -
php7.0取消mysql拓展,所以使用PDO类
header("Content-type:text/html;charset=utf-8");class DBO{ private $dbh; public function __construct(){ $dsn = 'mysql:dbname=dh;host=127.0.0.1'; $user = 'root'; $原创 2016-08-04 15:40:47 · 4560 阅读 · 0 评论 -
php页面分页类通用
分页显示是我们常常需要用到的,所以我为大家写了一个分页类,大家只用导入相应的项目就可以使用了!Page.class.phpclass Page { private $total; //数据表中总记录数 private $listRows; //每页显示行数 private $limit; private $uri; pr原创 2016-07-21 14:57:59 · 579 阅读 · 0 评论 -
php无限分类的思想
在业务逻辑的处理当中经常需要用到无限分类的方法:例如商品的分类只要思想就是在创建table 的时候添加一个p_id即是父亲id,相同的p_id归为一类,下面是无限分类的函数/*无限分类函数*@para1:需要修改的数组*@para2:开始的父亲id*/function tree($arr,$p_id = 0,$level = 0) {static $tree = arr原创 2016-07-21 14:32:30 · 515 阅读 · 0 评论 -
用cURL 制作一个简单的网页爬虫
/** * 实例描述:下载网络上面的一个HTTPS的资源 */$curlobj = curl_init(); // 初始化curl_setopt($curlobj, CURLOPT_URL, "https://www.baidu.com/");// 设置访问网页的URLcurl_setopt($curlobj, CURLOPT_RETURNTRANSFER, true);原创 2016-07-21 14:11:16 · 3390 阅读 · 0 评论