PHP

各版本主要功能改动

PHP 命令

PHP 知识结构

  • PHP 语言基础请参考 PHP 官方文档
  • 关于安全、设计模式等更多内容请参考「设计&开发」相关章节
  • PHP 生命周期
  • PHP FPM (FastCGI Process Manager)
  • 命令行模式
  • 语言结构(Language Construct) - language construct is not a function, cannot be called using variable functions, such as echo, print, unset(), isset(), empty(), include, require
  • 数组操作(个人认为 PHP 与其他语言对比,强大的数组功能大大简化了开发者对数据的结构类组织工作)
    • 关联数组
    • 多维数组
    • 排序
  • 自动加载 - Autoloading
    • __autoload
    • spl_autoload_register()
  • 类型比较 - PHP type comparison tables
    • isset(), empty(), is_null(), boolean : if($x) 函数对变量 $x 进行比较
    • 松散比较 == vs 严格比较 ===
  • 魔术方法 - magic method

    PHP 将所有以 __(两个下划线)开头的类方法保留为魔术方法。所以在定义类方法时,除了上述魔术方法,建议不要以 __ 为前缀。

    • 属性重载
      • __get() - 调用未定义的属性时调用
      • __set() - 对未定义的属性赋值时调用
      • __isset() - 对未定义属性使用 isset()、empty() 方法时被调用
      • __unset() - 对未定义属性使用 unset() 方法时被调用
    • 方法重载
      • __call() - 调用一个不存在的方法时被调用
      • __callStatic() - 调用一个不存在的静态方法时被调用
    • 序列化
      • __sleep() - 序列化对象时被调用
      • __wakeup() - 反序列化对象时被调用
    • 构造函数
      • __construct() - 构造函数,对象初始化时被调用
      • __destruct() - 析构函数,对象释放时被调用
    • 其他
      • __invoke() - 尝试以方法调用的方式调用一个对象时被调用
      • __toString() - 当一个类被尝试当做字符串使用时被调用,返回值只能为字符串,否则触发 PHP 致命错误
      • __clone() - 使用 clone 关键字作对象复制时被调用
      • __set_state() - 使用 var_export() 方法导出类时被调用
      • __debugInfo() - 使用 var_dump() 方法导出类时被调用
  • OOP - 面向对象
    • 继承、封装、多态
    • SPL - Standard PHP Library
    • 抽象类 vs 接口
    • 访问控制 - public, private, protected
    • 属性
    • 静态方法、属性
    • 静态延时绑定 - static
    • 常量 vs define
    • 命名空间
    • 反射
    • 类函数 vs 对象函数
    • Final 类
    • Traits - like Partial Class in C#
  • OPCode
  • 回调、匿名函数和闭包
  • 生成器 - Generator
    • yield
  • heredoc & nowdoc (PHP 5.3.0 新增)
  • PDO & mysqlnd
  • 错误和异常处理
    • PHP Error
    • PHP Exception
  • Coding Tips - 语言层面编写高性能 PHP 代码 - 单引号比双引号快? echo 比 print 好?

    NOTE: 两篇文章都有一段时间没有更新了,不过还是有一定的参考价值

  • 安全模式 - safe_mode(自 PHP 5.3.0 起废弃并将自 PHP 5.4.0 起移除。)

扩展阅读

powered by Gitbook 该教程制作时间: 2016-06-16 16:14:27