PHP教程 - 开发实践

PHP 开发实践:零基础、全中文、免费教程!

PHP 基础:比较、If、Switch - PHP 是一门庞大的语言,各个水平层次的开发者都可以利用它进行迅捷高效的开发。然而在对语言逐渐深入的学习过程中,我们往往会因为走捷径和/或不良习惯而忘记(或忽视掉)基础的知识。为了帮助彻底解决这个问题,这一章的目的就是提醒开发人员注意有关 PHP 的基础编程实践
全局空间、PHP 字符串的坑 - 使用 PHP 命名空间时,您可能会发现内部函数被你编写的函数给隐藏了。 要解决此问题,需要在函数名称前使用反斜杠来引用全局函数。
字符串高级进阶:Nowdoc、Heredoc - Nowdoc 语法在5.3中引入,内部行为与单引号相同,只是它适合使用多行字符串而不需要连接。
Heredoc 语法在内部的行为与双引号相同,只是它适合使用多行字符串而无需连接。
PHP单引号比双引号字符串更快吗? - 经常有人问我,听说在PHP中处理字符串用单引号会快,那么如果存在变量替换的时候,是使用单引号连接快呢,还是双引号快呢? 简单的回答,显然是苍白无力的。 今天我们来做个实验,看看到底单引号和双引号有什么区别,谁快,谁慢。
PHP 三元运算符 - 三元运算符是压缩代码的好方法,但通常过多使用。 虽然三元运算符可以堆叠/嵌套,但建议每行使用一个以提高可读性。
PHP 日期和时间 - PHP 中 DateTime 类的作用是在你读、写、比较或者计算日期和时间时提供帮助。除了 DateTime 类之外,PHP 还有很多与日期和时间相关的函数,但 DateTime 类为大多数常规使用提供了优秀的面向对象接口。它还可以处理时区,不过这并不在这篇简短的介绍之内。
PHP 令人困惑的 strtotime() 函数 - 经常会有人被strtotime结合-1 month, +1 month, next month的时候搞得很困惑, 然后就会觉得这个函数有点不那么靠谱, 动不动就出问题. 用的时候就会很慌…
设计模式 Design Patterns - 设计模式,也就是开发方法论!当你在编写 PHP 应用程序时,最好在项目的代码和整体架构中使用通用的设计模式,这将帮助你更轻松地对程序进行维护,也能够让其他的开发者更快地理解你的代码。

工厂模式 - 从名字来看,似乎看不出什么端倪。工厂模式,和生产有关?还是和生产流程有关?难道还和工厂领导有关?和领导秘书有关?秘书... 好了不卖关子了,所谓工厂模式还真和生产有关。生产什么呢?生产出来的是一个实例对象。通过什么设备生产?通过一个工厂类生产。怎么生产呢?工厂类调用自身静态方法来生产对象实例
单例模式 - 我们设计 Web 应用时,我们经常需要取得某个类的唯一实例,单例模式就帮我们解决了这个问题。单例模式,也叫职责模式!通俗的说,也就是对于某一个功能只能实例化一个对象。
策略模式 - 策略模式定义了算法族,分别封装起来,让他们之间可以相互替换。该模式让算法独立于使用它的客户而独立变化。
PHP 控制和反转 - PHP 很多地方也用到了依赖注入(控制反转),觉得有必要和大家简单聊一聊什么是依赖注入以及怎么使用它。
前端控制器模式 - 前端控制器模式(Front Controller Pattern)是用来提供一个集中的请求处理机制,所有的请求都将由一个单一的处理程序处理。该处理程序可以做认证/授权/记录日志,或者跟踪请求,然后把请求传给相应的处理程序。
模型-视图-控制器(MVC) - :MVC 属架构模式,和设计模式是不同层级的概念,请不要因为本文把它列在“设计模式”下而混淆。
使用 UTF-8 编码 - 虽然有很多途径可以确保 UTF-8 字符串能够被正确地处理,但这并不是很简单的事情,通常需要对 Web 应用进行全方面的检查,从 HTML 到 SQL 再到 PHP。我们将争取进行一个简洁实用的总结。
国际化(i18n)和本地化(l10n) - 前置声明:i18n 和 l10n 是使用数字简略拼写方式来实现缩写,在我们的例子里:internationalization 是 i18n,而 localization 简写为 l10n。
PHP 的 Trait 详解 - PHP 从以前到现在一直都是单继承的语言,无法同时从两个基类中继承属性和方法,为了解决这个问题,PHP 5.4.0 开始推出了 Trait 这个特性
PHP 匿名函数使用技巧 - 匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数(callback)参数的值。当然,也有其它应用的情况。匿名函数目前是通过 Closure 类来实现的。

PHP 适配器模式 - 主要场景为:将一个类的接口转换成客户希望的另外一个接口,Adapter 模式使得原来由于接口不兼容而不能一起工作的那此类可以一起工作。