一、储存密码
二、PHP与MySql
PDO的使用
三、PHP标签
<?php ?> 在所有服务器上都一定能工作的标签
<?= ?>
<? ?> ASP的风格
<% %>
四、自动加载类
__autoload 自动加载类的使用:
1、根据类名确定类文件名
2、确定类文件所在的磁盘路径(必须在开发时约定类名与磁盘文件的映射方法)
3、将类从磁盘文件中加载到系统中(只需要使用include/require即可)
在PHP5引入SPL标准库,spl_autoload_register()函数,此函数的功能就是把函数注册至SPL的__autoload函数栈中。适用于实现自动加载很多类名与实际的磁盘文件的映射规则不尽相同的类库文件。同时避免重复使用__autoload()引发冲突。
五、从性能角度来看单引号和双引号
单引号字符串不会被解析,双引号字符串会被解析,字符串中的任何 PHP 变量都会被求值。
对于一定规模的应用来说,使用单引号字符串能提高性能。对于现实中一般的应用来说, 区别非常小以至于根本不用在意。
六、define() VS const
1、define() 在执行期定义常量,而 const 在编译期定义常量
2、define() 将常量放入全局作用域,可以在常量名中包含命名空间,但是不能定义类常量(在类里面定义),const可以
3、define() 允许你在常量名和常量值中使用表达式,而 const 则都不允许
4、define() 可以在 if() 代码块中调用,但 const 不行
七、缓存 PHP opcode
八、PHP发送邮件
九、邮箱验证
使用filter_val()函数,验证邮箱的正误
filter_var('sgamgee@example.com', FILTER_VALIDATE_EMAIL);
十、净化HTML输入和输出
strip_tags()
filter_var()
htmlentities() 简单的数据净化
HTML Purifier 库,复杂的数据净化

十一、UTF-8编码
在每个 PHP 脚本的顶部(或者在全局包含脚本的顶部)你都应使用 mb_internal_encoding 函数
确保 数据库以及数据表 均设置为 utf8mb4 字符集
在你的数据库中执行任何其他查询之前先执行 MySQL 查询 set names utf8mb4
使用 mb_http_output() 函数,来确保PHP脚本输出 UTF-8 字符串到浏览器
在HTML 页面的 <head> 标签块中包含 字符集 <meta> 标签块
十二、处理时间和日期
使用DateTime 类

十三、检测一个值是否为 null 或 false
1、isset 是检测一个变量是否有值, 而不是检测该值是否为 null 或 false
2、is_null() 函数能准确地检测一个值是否为 null
3、is_bool 可以检测一个值是否是布尔值(比如 false)
4、=== 操作符,它也比 is_null() 和 is_bzol() 要快一些,并且有些人认为这比使用函数来做比较更干净些