置顶推荐

最新发布

经验分享

PHP !empty()是否包含isset()?

3星期前 30 浏览 评论

经常能在项目中看到如下代码,那我们有没有考虑这样是否啰嗦了呢?if(isset($var) && !empty($var))首先我们了解下isset() 和 empty()isset:检测变量是否设置,并且不是 NULL。 即:变量未设置,返回false; 变量为NULL,返回falseempty:检查变量是否为空,""、0、"0"、NULL、FALSE、array()、var $var;&

经验

RSA+AES 实现客户端和服务端交互数据加密

1个月前 85 浏览 评论

现在接口大多是http请求,数据在请求过程中容易被抓包造成信息泄露或者数据被篡改。所以,数据传输过程中我们需要对敏感数据加密处理。在实现加密方法之前,我们需要先了解下加密算法,我们的加密方法都需要加密算法去支持。常用接口加密常用的就是 DES/AES/RSA/SHA1/MD5 等加密算法了。加密算法一般也就3种:对称加密算法、非对称加密算法、散列算法| DESDES对称加密算法,全称为 Data Encryption Standard,是一种使用密钥加密的块算法。加密串的长度是64位(

数据基础

Mysql 去重

2个月前 88 浏览 评论

MYSQL查询去重我们有两种方法:1. MYSQL distinct 关键字去重查询。select * from it_user; id      name          sex 1 zhangsan        

经验分享

PHP Inf and NaN cannot be JSON encoded

2个月前 122 浏览 评论

json_encode 报错 Inf and NaN cannot be JSON encoded 我们通过 json_last_error_msg() 查看错因,得知是json序列化的数组里面包含NAN 和INF 这些内容导致的。解决方案如下:return json_encode(unserialize(str_replace(array('NAN;','INF;'),'0;',serialize($res))));

经验分享

PHP 错误(Error) / 异常(Exception) 的捕获处理

2个月前 118 浏览 评论

“错误”和“异常”的概念十分相似,都说明我们的系统出了问题,也都会给出错误信息和错误类型。但是“异常机制”的出现,是为了补充“错误机制”的不足,是为了防范可能出现的错误。优雅的处理错误和异常,是提升代码友好度和开发效率的关键。什么是错误?PHP中将代码自身的异常(一般是环境或者语法非法所致)称为错误(Error)。什么是异常?PHP中将代码运行中出现的逻辑错误称为异常(Exception)。| 异常异常是 Exception类的对象,我们可以通过getCode(),getMessage

知识点

PHP $a && $b = $c 的用法

3个月前 129 浏览 评论

    在写代码的时候经常需要做if简单判断赋值操作,if多了就显得代码块太大;if如果去掉大括号代码读起来太难受。这时候我们可以用这种写法,意思是:如果$a为真,将$c赋值给$b。// 这是正常的写法,判断多了代码太长 if ( $a ) {     $b = $c; } // 这种写法会被人骂的 if ( $a&

数据基础

Mysql 命令行下数据库导入导出

3个月前 145 浏览 评论

    Mysql 在命令行下导出导入也是十分方便的,用远程连接数据库操作也是可行的,但是有时sql脚本比较庞大,用远程连接可能会超时也比较慢,这时候直接在服务导入导出是最佳选择。| 导出    1. 导出结构+数据    mysqldump -u 用户名 -p 数据库名 > 导出的文件名[root@xxx www.itspire.cn]# 

设计模式

PHP 设计模式-观察者模式

3个月前 213 浏览 评论

    什么是观察者模式?    一个对象被设置成可观察时,它的状态发生了变化或触发了某个事件,其他依赖它的对象全部会收到通知,并自动更新。    为什么使用观察者模式?    当发生某个事件后,我们需要对其他对象进行操作。比如登录后,我们需要更新用户的登录时间,传统的方式就是在事件的代码之后直接加入处理的逻辑;下次可能用户异地登录,我们又需要给用户推送消息;每次增加

设计模式

PHP 设计模式-注册树模式

3个月前 214 浏览 评论

    为什么要用注册树模式?    一个项目中肯定会有很多对象,我们使用单例模式的时候,每次获取实例的时候都要判断这个实例是否存在。结合工厂模式的时候,就会有许多的对象,我们就会感觉这些对象非常零散,不方便统一管理。这时候我们使用注册树模式,不管什么对象,不管怎么生成的,只要生成了就统统插到注册树上。我们使用某个对象的时候,只要从树上取下来就可以了,类似全局变量,在入口文件处定义好之后,任意地方都能直接使用。我们来看实例:final&