置顶推荐

最新发布

数据基础

Mysql 去重

2天前 13 浏览 评论

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

经验分享

PHP Inf and NaN cannot be JSON encoded

2天前 10 浏览 评论

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星期前 36 浏览 评论

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

知识点

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

1个月前 79 浏览 评论

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

数据基础

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

1个月前 82 浏览 评论

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

设计模式

PHP 设计模式-观察者模式

1个月前 136 浏览 评论

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

设计模式

PHP 设计模式-注册树模式

1个月前 146 浏览 评论

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

设计模式

PHP 设计模式-策略模式

1个月前 141 浏览 评论

    策略模式是对象行为模式。是对算法的封装,每个算法封装成一个类(具体角色),并实现抽象类(抽象角色)的共同方法,再通过一个上下文类(环境角色)维护抽象策略的引用。| 优点     1、避免使用多重条件转移语句。    2、遵循开闭原则。| 缺点     客户端必须知道所有的策略类,并自行决定使

设计模式

PHP 混编模式-单例模式结合工厂模式和适配器模式实现多个类创建单例工厂并适配多种缓存

2个月前 139 浏览 评论

    前文中,我们了解了单例模式,认识了工厂模式,实现了多个类创建单例的方法:单例模式结合抽象父工厂实现多个类创建单例。之后又学习了适配器模式,我们现在结合几种设计模式来实现:多个类创建单例工厂,并适配多种缓存。    这里我们会创建缓存工厂(CacheFactory),继承单例抽象父工厂(AbstractSingleton),创建缓存目标接口(CacheTarget),再创建Redis适配者(RedisAdapt