1. 一,PHP基础
    1. 注释
      1. 多行/*..............*/
      2. 单行//或#
    2. 表单变量<form aciton
      1. $_GET[name]
      2. $_POST[name]
      3. $_REQUEST
    3. PHP数据类型
      1. 整数
      2. 浮点数
      3. 字符串
      4. 布尔值
      5. 数组
      6. 对象
      7. 标量
    4. 常识
      1. 字符串的连接
      2. 变量命名规则
        1. 长度不限
        2. 不能以数字开头,区分大小写
        3. 不用声明可以直接使用
      3. 类型转换
      4. 可变变量
      5. 常量
      6. 理解变量作用域
        1. 内置超级全局变量可在脚本所有地方使用
        2. 常量一旦声明全局可见,函数内外可用
        3. 在一个脚本声明的全局变量在整个脚本中可见
        4. 函数内部使用的变量为全局时,名称要与全局变量名称一致
        5. 函数内部创建的静态的变量无法在函数外可见
        6. 函数内创建变量是函数内部的,函数终止时变量就不存在了
      7. 转义字符
        1. \n换行\r回车
    5. 操作符
      1. 算术操作符
        1. 加+
        2. -减
        3. *乘
        4. /除
        5. %取余
      2. 字符串操作符.
      3. 赋值操作符=
        1. 赋值运算返回值
        2. 复合赋值操作符
          1. $a += $b
          2. $a -= $b
          3. $a *= $b
          4. $a /= $b
          5. $a % $b
          6. $a . $b
        3. 前置后置递增递减运算符
        4. 引用操作符
      4. 比较操作符
        1. 等于操作符
        2. 其他比较操作符
      5. 逻辑操作符
        1. 异或
      6. 位操作符
        1. &且
        2. |或
        3. ~非
        4. ^异或
        5. <<左位移
        6. >>右位移
      7. 其他操作符
        1. ,逗号
        2. new
        3. ->
        4. 三元操作符
        5. 错误抑制操作符@
        6. 执行操作符
        7. 数组操作符
          1. 联合+
          2. 等价==
          3. 恒等===
          4. 非等价!=
          5. 非恒等!==
          6. 返回true或是false
        8. 类型操作符instanceof
    6. 了解函数
      1. number_format($a,2)
    7. 使用可变函数
      1. 测试设置变量类型
        1. gettype($a)
        2. settype($a,设置类型)
      2. 测试变量类型函数
        1. is_array()
        2. is_double()
        3. is_int()
        4. is_string()
        5. is_bool()
        6. is_Object()
        7. is_resource()
        8. is_null()
        9. is_scalar()
        10. is_numeric()
        11. is_callable()
      3. 测试变量状态
        1. isset($a)
        2. unset($a)
        3. empty()
    8. 条件语句
      1. if语句
      2. else语句
      3. elseif语句
      4. switch语句
    9. 循环语句
      1. while循环未知次数
      2. do{....}while()循环
      3. for循环固定次数
      4. foreach数组循环
      5. 从脚本中跳出
        1. break
        2. continue
        3. exit
  2. 文件读写储存
    1. 文件处理
      1. fopen('文件名','模式')
      2. fwrite(文件,'内容')
      3. strlen(文件)
      4. fclose(文件)
      5. feof(文件)
      6. 读取一行数据
        1. fgets(文件,读取最大长度)
        2. fgetss(文件,读取长度,要过滤的字符)
        3. fgetcsv(文件,长度,定界符)
      7. 读取整个文件
        1. readfile(文件)
        2. fpassthru(文件)
        3. file()
      8. 读取一个字符fgetc()
      9. fread()读取任意长度
    2. 其他文件函数
      1. file_exists(文件)
      2. filesize()
      3. unlink()
      4. 文件指针定位
        1. rewind()
        2. fseek($fp,B,A)
        3. ftell()
    3. 文件锁定flock()
    4. 推荐使用数据库读取操作
      1. 使用普通文件的问题
        1. 文件变大访问非常慢
        2. 查找特定一组比较困难
        3. 处理并发访问有问题
        4. 从文件中间插入删除困难
        5. 文件访问权限单一,需要多级别会员
      2. RDBMS
        1. 访问速度块
        2. 容易查找检索特定条件
        3. 具有内置的处理并发访问的机制
        4. 可以随机访问数据
        5. 具有内置的权限系统
      3. php的SQLite扩展
  3. 数组
    1. 数组
      1. 数字索引数组
      2. 非数字索引数组
      3. 多维数组
        1. 二维数组
          1. 数字可以用双重for循环
          2. 二维关联还可以用for循环加$[i][key]
          3. 可以用for[$i]然后用list($k,$v)=each($a[$i])循环
        2. 三维数组
          1. 可以先用两个for循环
          2. 如果里面数组是数字索引
          3. 如果里面数组为关联索引
    2. 数组操作符
      1. $a+$b
      2. $a==$b
      3. $a===$b
      4. $a!=$b
      5. $a!==$b
    3. 数组排序
      1. 排序
        1. sort()
        2. asort()
        3. ksort()
        4. 反向排序
          1. rsort()
          2. arsort()
          3. krsort()
        5. range()
        6. 多维数组的排序
          1. usort(数组,'比较函数')
          2. uasort(数组,'比较函数')
          3. uksort(数组,'比较函数')
          4. 反向排序没有对应的rsort版本
        7. shuffle()
        8. array_reverse()
      2. 数组指针
        1. reset()
    4. 数组函数
      1. array_push()
      2. array_pop()
      3. file($a)
      4. count($a)
      5. explode(定界符,字符串)
      6. intval()
      7. array_walk($a,函数)
      8. sizeof()
      9. array_count_values()
      10. extract(数组,冲突咋办)
        1. EXTR_OVERWRITE
        2. EXTR_PREFIX_ALL
        3. 还有其他参数,上面最常用
    5. 循环访问数组
      1. for循环
      2. foreach
      3. each()
      4. list($key,$value)
    6. 关于指针
      1. each()
      2. next()
      3. current()
      4. reset()
      5. end()
      6. pos()
      7. prev()
  4. 字符串操作与正则表达式
    1. 字符串
      1. 其他
        1. isset()
        2. empty()
      2. 格式化
        1. trim(字符传,diy过滤符号)
        2. ltrim()
        3. rtrim()
        4. nl2br($a)
        5. print()输出
        6. printf()
        7. sprintf()
        8. 改变字母大小写
          1. strtoupper()
          2. strtolower()
          3. ucfirst()
          4. ucwords()
        9. 格式化字符串准备存储MYSQL
          1. addslashes()
          2. stripslashes()
          3. get_magic_quotes_gpc()
      3. 连接与分割
        1. explode(定界符,字符串)
        2. implode(定界符,数组)
        3. join()
        4. strtok()
        5. substr($str,开始,截止位置)
      4. 字符串比较
        1. 排序
          1. strcmp($str1,$str2)
          2. strcasecmp()
          3. strnatcmp()
          4. strnatcasecmp()
        2. strlen()
      5. 匹配替换string
        1. 查找字符串
          1. strstr(字符串,搜的关键字)
          2. stristr()
          3. strchr(str,keywords)
          4. strrchr()
        2. 查找字符串的位置
          1. strpos(字符串,关键字)
          2. strrpos
          3. 有点问题
        3. 替换字符串
          1. str_replace(a,abcd,$str)
          2. substr_replace($str,"X",-1)
    2. 正则表达式
      1. [a-zA-Z0-9]
      2. .at
      3. [^abcd]
      4. *有没有a都行
      5. +至少有一个a
      6. 上面可以组合应用括号括起来()
      7. {1,3}最少重复1次最多3次
      8. 匹配开头结尾
        1. 开头^b
        2. 结尾$,例如com$
      9. com|edu|net或or
      10. 匹配特殊符号用转义符\
      11. 正则符号一览表
    3. 用正则查找字符串
      1. ereg(表达式,字符串,保存的数组)
      2. eregi()
    4. 用正则替换字符串
      1. ereg_replace(表达式,XXX,字符串)
      2. eregi_replace()
    5. 用正则分割字符串
      1. split(正则,字符串,最大个数)
  5. 代码重用与函数编写
    1. 代码重用的好处
      1. 成本小
      2. 可靠性
      3. 一致性
    2. 使用require()和include()函数
      1. require()
      2. require_once()
      3. include()
      4. include_once()
      5. 配置文件php.ini
        1. auto_prepend_file
        2. auto_append_file
        3. apache服务器对某个目录每个文件的引入
    3. 函数介绍
      1. 调用函数
      2. 调用未定义函数
      3. 函数名称
    4. 定义函数
    5. 使用参数
      1. 帮助器函数
        1. func_num_args()
        2. func_get_arg(0)
        3. func_get_args()
    6. 理解作用域
      1. 函数内部声明变量
      2. 函数外部声明变量
      3. 特殊超全局变量$_GET之类
      4. require和include引入的变量
      5. global 指定函数内全局作用域
      6. unset(变量)
    7. 参数引用变量用符号&
    8. 返回值
      1. return在函数内停止执行函数
      2. return 值
      3. 注意false和0的问题
    9. 实现递归
    10. 使用命名空间
  6. 面向对象
    1. 面向对象的概念
    2. 类,属性,和操作方法
        1. 构造函数__construct()
        2. 析构函数__destruct()
      1. 属性
        1. 特殊指针$this->
        2. 在类外访问属性方法
        3. 不推荐类外访问属性方法
          1. __get(属性)
          2. __set(属性,属性值)
        4. 子主题 4
      2. 子主题 3
    3. 类属性
    4. 类方法的调用
    5. 继承
      1. 单项继承的
      2. 与访问修饰符有关
      3. 重载
      4. parent::属性或是方法
      5. final禁止继承和重载本类属性方法
      6. 理解多重继承C++类型
      7. 实现接口解决不能多重继承
    6. 访问修饰符
      1. public
      2. private
      3. protected
    7. 类的设计
    8. 高级面向对象功能
      1. 不用实例化调用属性方法
        1. 使用per-class常量
        2. 静态方法static
      2. 类型提示instanceof
        1. {$b instanceof B}
      3. 延迟静态绑定(>php5.3版本)
      4. 对象克隆clone及__clone
        1. clone
        2. __clone()方法写在父类中
      5. 抽象类
      6. 使用__call()重载方法
      7. 使用__autoload()方法(单独的函数,非类)
      8. 实现迭代器和迭代
        1. 用foreach()取出一个对象的所有属性
        2. iterator迭代器
      9. 将类型转换成字符串
      10. 使用Reflection反射API
  7. 错误和异常处理
    1. 异常处理的概念
    2. 异常控制结构
    3. Exception类
    4. 用户自定义异常
    5. 写文件三种错误
      1. 文件无法打开
      2. 无法获得写权限
      3. 文件无法写入
    6. 异常和php的其他错误处理机制