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 这个特性