随笔分类 -  PHP进阶

摘要:简述 编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设,可以将断言看作是异常处理的一种高级形式。 程序员断言在程序中的某个特定点该的表达式值为真。如果该表达式为假,就中断操作 。 可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言,而在部署时禁用断言。同样,程序投入运行后 阅读全文
posted @ 2017-07-10 18:20 菜问 阅读(20467) 评论(3) 推荐(0)
摘要:匿名函数 闭包 PHP在默认情况下,匿名函数内不能调用所在代码块的上下文变量,而需要通过使用use关键字。 闭包的好处 1. 减少循环 2. 减少函数的参数 3. 解除递归函数 4. 关于延迟绑定 几个配合回调或闭包的函数 阅读全文
posted @ 2017-04-26 22:32 菜问 阅读(1095) 评论(0) 推荐(1)
摘要:一般你在迭代一组数据的时候,需要创建一个数据,假设数组很大,则会消耗很大性能,甚至造成内存不足。 PHP5.5实现了生成器,每当产生一个数组元素则用 关键词返回,并且执行函数暂停,当执行函数next方法时,则会从上一次被yield的位置开始继续执行,如下例子,只会产生中间变量$i,并只在每次循环的赋 阅读全文
posted @ 2017-04-20 23:35 菜问 阅读(689) 评论(0) 推荐(0)
摘要:概述 traits是PHP5.4新进入的特性,其目的就是解决PHP的类不能多继承的问题。 Traits不是类!不能被实例化。 可以理解为一组能被不同的类都能调用到的方法集合。只需要在类中使用关键词use引入即可,可引入多个Traits,用','隔开。 简单使用 优先级问题 Trait会覆盖继承的方法 阅读全文
posted @ 2017-04-03 20:12 菜问 阅读(742) 评论(0) 推荐(0)
摘要:常用正则表达式举例 整数或者小数:^\d+\.?\d{0,2}$ 只能输入数字:"^[0 9] $"。 只能输入n位的数字:"^\d{n}$"。 只能输入至少n位的数字:"^\d{n,}$"。 只能输入m~n位的数字:。"^\d{m,n}$" 只能输入零和非零开头的数字:"^(0|[1 9][0 9 阅读全文
posted @ 2017-04-01 15:25 菜问 阅读(887) 评论(0) 推荐(0)
摘要:运算顺序 1. 圆括号因为是内存处理所以最高 2. 重复匹配内容其次 3. 边界处理第三 4. 条件处理第四 最后按照从左到右来匹配 原子 原子是正则表达式中的最小的元素,包括英文、标点符号等。 代表只匹配一个 \d 匹配任意一个数字 [0 9] \D 与除了数字以外的任何一个字符匹配 [^0 9] 阅读全文
posted @ 2017-03-31 11:47 菜问 阅读(805) 评论(0) 推荐(0)
摘要:PHP SPL SplObjectStorage是用来存储一组对象的,特别是当你需要唯一标识对象的时候。 PHP SPL SplObjectStorage类实现了Countable,Iterator,Serializable,ArrayAccess四个接口。可实现统计、迭代、序列化、数组式访问等功能 阅读全文
posted @ 2016-04-26 09:58 菜问 阅读(437) 评论(0) 推荐(0)
摘要:SplFixedArray主要是处理数组相关的主要功能,与普通php array不同的是, 它是固定长度的,且以数字为键名的数组 ,优势就是比普通的数组处理更快。 类摘要 Example 阅读全文
posted @ 2016-04-20 20:55 菜问 阅读(216) 评论(0) 推荐(1)
摘要:普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头取出。在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先取出。优先队列具有最高级先出 (largest in,first out)的行为特征。 总结下来就是普通队列有 先进先出 原则,优先级队列有 优先级高先出 原则 阅读全文
posted @ 2016-04-16 10:41 菜问 阅读(323) 评论(0) 推荐(0)
摘要:这两个类都是继承自 ,分别派生自 的堆栈模式和队列模式;所以放在一起来介绍; 堆栈SplStack ![3846779171.jpg 31.4kB][1] 队列SplQueue ![804515552.png 10.1kB][2] [1]: http://static.zybuluo.com/a56 阅读全文
posted @ 2016-04-08 20:52 菜问 阅读(718) 评论(0) 推荐(0)
摘要:简述 双链表是一种重要的线性存储结构,对于双链表中的每个节点,不仅仅存储自己的信息,还要保存前驱和后继节点的地址。 ![2516436194.png 28.6kB][1] 类摘要 实现了Iterator接口,可以快速实现迭代; 实现了 ArrayAccess 接口, 可以如数组般访问链表数据; 其他 阅读全文
posted @ 2016-03-20 12:03 菜问 阅读(250) 评论(0) 推荐(0)
摘要:我把SPL分为四个部分:Iterator,Classes,Datastructures,Function;而其中classes是就是做一些类的介绍(Iterator与Datastructures相关的类在各自文章内),在介绍这些类之前,先介绍几个接口: ArrayAccess(数组式访问)接口 ht 阅读全文
posted @ 2016-03-15 20:59 菜问 阅读(333) 评论(0) 推荐(0)
摘要:Iterator界面 本段内容来自阮一峰老师再加自己的部分注解 SPL规定,所有部署了Iterator界面的class,都可以用在foreach Loop中。Iterator界面中包含5个必须部署的方法: current() This method returns the current index 阅读全文
posted @ 2016-03-13 17:35 菜问 阅读(371) 评论(0) 推荐(0)
摘要:什么是SPL SPL是Standard PHP Library(PHP标准库)的缩写。 根据官方定义,它是"a collection of interfaces and classes that are meant to solve standard problems" SPL是用于解决典型问题(s 阅读全文
posted @ 2016-03-08 10:02 菜问 阅读(1309) 评论(0) 推荐(0)
摘要:【PSR规范专题(3)】PSR 2 代码风格规范 标签(空格分隔): PHP 转载自:https://github.com/PizzaLiu/PHP FIG/blob/master/PSR 2 coding style guide cn.md 代码风格规范 ================== 本篇 阅读全文
posted @ 2016-03-04 09:38 菜问 阅读(351) 评论(0) 推荐(0)
摘要:转载自: https://github.com/PizzaLiu/PHP FIG/blob/master/PSR 1 basic coding standard cn.md 基本代码规范 ===================== 本篇规范制定了代码基本元素的相关标准, 以确保共享的PHP代码间具有 阅读全文
posted @ 2016-02-29 09:45 菜问 阅读(235) 评论(0) 推荐(0)
摘要:依赖注入容器 依赖注入(Dependency Injection,DI)容器就是一个对象 ,它知道怎样初始化并配置对象及其依赖的所有对象。 依赖注入和服务定位器都是流行的设计模式,它们使你可以用充分解耦且更利于测试的风格构建软件。 构造方法注入 Setter 和属性注入 PHP 回调注入 注册依赖关 阅读全文
posted @ 2016-02-20 13:51 菜问 阅读(1443) 评论(0) 推荐(0)
摘要:简介 PHP Reflection API是PHP5才有的新功能,它是用来导出或提取出关于类、方法、属性、参数等的详细信息,包括注释。 用得比较多的就只有两个 与`ReflectionObject Reflection`对象(ReflectionProperty以及ReflectionMethod) 阅读全文
posted @ 2016-02-01 20:18 菜问 阅读(14020) 评论(2) 推荐(2)
摘要:简介Memcached是一个 高性能的分布式的内存对象缓存系统 ,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从... 阅读全文
posted @ 2015-11-03 18:34 菜问 阅读(3721) 评论(0) 推荐(0)
摘要:抽象类 php5支持抽象类和抽象方法。类前加 abstract, 此类就成为抽象类, 无法被实例化 ,此类天生就是用来被继承的,给子类提供了一个类的模板; 类方法前加 abstract,是抽象方法, 抽象方法不能有方法体; 总结下来抽象类有以下几个特点: 1. 类中有抽象方法,则此类一定要... 阅读全文
posted @ 2015-11-03 17:48 菜问 阅读(912) 评论(0) 推荐(0)