PHP编程之活用魔术方法

Java有注解和反射,Ruby有代码生成代码的元编程,Scala有Monad函子,而PHP有魔术方法。这些都是非常强大的武器,有人喜欢它的强大,但也有人讨厌它的复杂以及伴随而来的难以理解、万丈深渊。例如Ruby中的猴子补丁,非线性顺序的执行经常会让人摸不着头脑 … 阅读更多

PHP编程之数组类

前面介绍的关于数组的排序、集合的三大操作,都是使用函数的,是面向过程的。接下来,了解一下面向对象编程相关的知识。数组类是什么意思呢?不难理解,数组类就是具体数组特性的类。 对于一个数组,可以获取和修改某个键的值,也可以进行删除、判断键是否存在。如果一个类想实现 … 阅读更多

PHP编程之函数式编程与数组

php

在函数式编程的世界里,针对集合的操作有三大类,分别是:映射、过滤和归约。 虽然PHP是一门解释性脚本语言,并且支持面向过程编程和面向对象编程,与函数式编程还是有很大区别的,但是PHP也为映射、过滤和归约提供了对应的函数。它们分别是: 映射:array_map( … 阅读更多

TDD的模式、原则与三角验证(使用PHP代码示例)

我们继续讨论TDD的一些理论知识,然后下一节我们就开始进入到单元测试的实践部分。理论知识是最佳实践充分不必要的条件,即便没有理论知识,也能进行最佳实践;但掌握了理论知识将能帮助你做到事半功倍。所以,这一节,不要轻易跳过哦,并且它的内容也很有意思。 构造-操作- … 阅读更多

PHP编程之从CLI运行模式与HTTP协议的差异

php

用户在浏览网站时,他对网站的请求,经过Nginx流转后进入PHP-FPM执行。在这个过程中,在客户端与服务端之间通讯的协议是HTTP协议,关于这一点,已经是众所周知的了。与网站开发的很多知识和技术,例如COOKIE、会话、HTTP请求和响应的头部信息、HTML … 阅读更多

PHP编程之从CLI运行模式说起–命令行参数

php

在面试时,我经常会问的一个问是:PHP有哪几种运行模式?如果过来应聘的同学回答了有FastCGI常驻型运行模式和CLI命令行运行模式的话,我就会继续追问:在这两种模式下,编写的PHP代码有哪些主要区别? 有较多的同学这个问题回答得都不是很好,估计他们对于CLI … 阅读更多

PHP编程之数组排序

对一万多个学生使用usort()排序

PHP里的数组实际上是一个有序映射。不管是队列、数组、栈还是字典,在使用PHP编程时,你都可以统一使用PHP的数组。这一节,我们只要探讨关于PHP数组的排序,因为数据的排序这块,是很多项目都会使用到的。虽然数据库也可以很方便进行排序,但在复杂、动态的业务规则下 … 阅读更多

PHP编程之判断空与非空

很多时候,对于明显的初级的PHP语法,我们一眼就能识别。假设稍微转换一下,这时就需要花点心思才能识破其中的奥妙。最困难的莫过于,微妙的用法与繁杂的业务代码、规则逻辑混在一起,散落在上千行代码时,想要在短时间内发现问题所在则是个巨大的挑战。 简单的判空 大家使用 … 阅读更多