1. 预定义常量
预定义常量也称魔术常量,使用方法与常量同,但其值会根据具体使用情况产生变量。经常使用的预定义变量有五个:
__LINE__:显示文件当前行号
__FILE__:显示文件完整路径和文件名
__CLASS__:显示类定义时的名称
__FUNCTION__:显示函数定义时的名称
__METHOD__:显示方法定义时的名称
2. 定义和使用常量
常量使用define()函数定义,格式为define(变量名, 变量值);
常量作用范围是全局的,所以在程序开始运行时定义的常量,在其它页面可以使用defined()函数进行检查。
3. Global变量 $GLOBALS
$GLOBALS变量以数组的形式,记录了所有已经定义的全局变量,变量名即数组的索引。
Echo $GLOBALS[“_ENV”][“OS”]; 访问环境变量
Echo $GLOBALS[“_SESSION”][“logined”]; 访问SESSION变量
4. 变量引用
新建一个变量,指向一个已经存在的变量即引用。引用实际上是为变量设置的别名,使用引用变量与使用变量本身一样。引用变量值的改变会引起变量本身值的改变。
取消引用 unset()
$m = 10;
$n = &$m; //建立引用
Unset($n); //取消引用
5. ’ ’
执行运算符,作用与shell_exec()同,在安全模式或关闭了shell_exec()的情况下,该运算符无效
$dir = ’dir’; //列目录
Print_r($dir); //输出数组
6. 对象序列化
使用serialize()函数把对象转换为字符串,包含了对象的所有属性和对象名称,不包括对象的方法。
使用unseralize()函数反序列化,还原对象并重建原始的属性。
__sleep() __wakeup()函数
这两个函数是类中定义的方法,被称为魔术方法。
__sleep()在对象序列化前运行,用于清楚类似数据提交、关闭数据库链接等工作,并返回一个数组,该数组包含了应该被序列化的所有变量。也可以在返回的数组中,指定要序列化的变量。
__wakeup()函数在对象反序列化之前运行,用于重建对象序列化时丢失的资源或其它初始化工作。
Class Human{
Function __sleep(){
Return array(“name”,”age”); //序列化name 和 age 变量
}
Function __wakeup(){
$this->name=”tom”; //改变了序列化对象的属性
$this->age = 18;
}
}