(1)PHP mktime() 函数
mktime() 函数返回一个日期的 UNIX 时间戳。
语法 mktime(hour,minute,second,month,day,year,is_dst);
结论:注意参数顺序。
(2)PDO中一共提供了三种不同的错误处理模式
① PDO::ERRMODE_SILENT:不报错误
② PDO::ERRMODE_WARNING:以警告的方式报错
③ PDO::ERRMODE_EXCEPTION:以异常的方式报错
silent 沉默的 exception 例外
(3)validating过滤器和sanitizing过滤器
Validation 用于校验数据。例如,在filter_var($variable)
中传入FILTER_VALIDATE_EMAIL
,会校验$variable
是否为合法的email地址。
Sanitization 用于修正数据,不校验数据。例如,在filter_var($variable)
中传入FILTER_SANITIZE_EMAIL
,$variable
变量中不符合email地址规则的字符将会被修剪。
Validation 校验通过返回数据,校验失败返回false
。
Sanitization 返回修正后的数据,无论修正是否起作用。
单词:Validating 验证 sanitizing 消毒,净化
(4)__clone方法
class A{ public $num=100; } $a = new A(); $b = clone $a; $a->num=200; echo $b->num;
结果为:100。
这种方式是完全克隆了一个a,a和b指向内存中不同的数据(只不过数据值是相同的而已),修改任意一个不会对另一个造成影响。
(5)PHP 重载
PHP所提供的"重载"(overloading)是指动态地"创建"类属性和方法。我们是通过魔术方法(magic methods)来实现的。
一、属性重载
在给不可访问属性赋值时,__set() 会被调用。public void __set ( string $name , mixed $value )。
读取不可访问属性的值时,__get() 会被调用。public mixed __get ( string $name )。
当对不可访问属性调用 isset() 或 empty() 时,__isset() 会被调用。public bool __isset ( string $name )。
当对不可访问属性调用 unset() 时,__unset() 会被调用。public void __unset ( string $name )。
属性重载只能在对象中进行。在静态方法中,这些魔术方法将不会被调用。所以这些方法都不能被 声明为 static。从 PHP 5.3.0 起, 将这些魔术方法定义为 static 会产生一个警告。
二、方法重载
在对象中调用一个不可访问方法时,__call() 会被调用。public mixed __call (string $name , array $arguments )。
在静态上下文中调用一个不可访问方法时,__callStatic() 会被调用。public static mixed __callStatic (string $name , array $arguments )。
(6)php请求方式:
表单提交的方式:只有GET和POST。
HTTP的请求方式:
基本的四种:POST、GET、PUT、DELETE;
其他的几种:OPTIONS、HEAD、TRACE、CONNECT、......。
简单描述:
GET: 请求指定的页面信息,并返回实体主体。
POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。
PUT: 从客户端向服务器传送的数据取代指定的文档的内容。
DELETE: 请求服务器删除指定的页面。
HEAD: 只请求页面的首部。
OPTIONS: 允许客户端查看服务器的性能。
TRACE: 请求服务器在响应中的实体主体部分返回所得到的内容。
PATCH: 实体中包含一个表,表中说明与该URI所表示的原内容的区别。
MOVE: 请求服务器将指定的页面移至另一个网络地址。
COPY: 请求服务器将指定的页面拷贝至另一个网络地址。
LINK: 请求服务器建立链接关系。
UNLINK: 断开链接关系。
WRAPPED: 允许客户端发送经过封装的请求。
Extension-mothed:在不改动协议的前提下,可增加另外的方法。
(7)PHP array_count_values() 函数
array_count_values() 函数对数组中的所有值进行计数。返回一个数组,其元素的键名是原数组的值,键值是该值在原数组中出现的次数。
$a=array("A","Cat","Dog","A","Dog"); print_r(array_count_values($a));
结果为:Array ( [A] => 2 [Cat] => 1 [Dog] => 2 )。
(8)PDO对象中的成员方法:
当PDO对象创建成功以后,与数据库的连接已经建立,就可以使用PDO对象了,下面哪个不是PDO对象中的成员方法?
A .errorInfo() B. bindParam() C .exec() D. prepare()
正确答案:B。解析:答案B是PDOStatement的成员方法,不是PDO的成员方法。
关于PDO和PDOStatement的成员方法:
PDO | PDOStatement | |
beginTransaction | 启动一个事务 | |
commit | 提交一个事务 | |
__construct | 创建一个表示数据库连接的 PDO 实例 | |
errorCode | 获取跟数据库句柄上一次操作相关的 SQLSTATE | 获取跟数据库句柄上一次操作相关的 SQLSTATE |
errorInfo | 获取跟上一次语句句柄操作相关的扩展错误信息 | 获取跟上一次语句句柄操作相关的扩展错误信息 |
exec | 执行一条 SQL 语句,并返回受影响的行数 | |
execute | 没有该方法 | 执行一条预处理语句 |
getAttribute | 取回一个数据库连接的属性 | 检索一个语句属性 |
getAvailableDrivers | 返回一个可用驱动的数组 | |
inTransaction | 检查是否在一个事务内 | |
lastInsertId | 返回最后插入行的ID或序列值 | |
prepare | 为执行准备一条SQL语句。 | |
query | 执行SQL语句返回结果集。 | |
quote | Quotes a string for use in a query | |
rollBack | 回滚一个事务 | |
setAttribute | 设置属性 | 设置一个语句属性 |
bindColumn | 绑定一列到一个 PHP 变量 | |
bindParam | 绑定一个参数到指定的变量名 | |
bindValue | 把一个值绑定到一个参数 | |
closeCursor | 关闭游标,使语句能再次被执行。 | |
columnCount | 返回结果集中的列数 | |
debugDumpParams | 打印一条 SQL 预处理命令 | |
fetch | 从结果集中获取下一行 | |
fetchAll | 返回一个包含结果集中所有行的数组 | |
fetchColumn | 从结果集中的下一行返回单独的一列。 | |
fetchObject | 获取下一行并作为一个对象返回。 | |
getColumnMeta | 返回结果集中一列的元数据 | |
nextRowset | 在一个多行集语句句柄中推进到下一个行集 | |
rowCount | 返回受上一个 SQL 语句影响的行数 | |
setFetchMode | 为语句设置默认的获取模式。 |