类的自动加载是外面的页面中,并不须要去“引入”(包含)类文件,可是程序会在须要一个类的时候就自动去“动态加载”该类。php
1.使用__autoload魔术函数。它本身引数据库
2.使用spl_autoload_register函数数组
对象也能够能够使用foreach语句进行遍历,有两点注意:函数
1,只能遍历属性。spa
2,只能遍历“看获得”的属性——代码所在范围可访问。scala
内置标准类,直接new一个,里面属性只要用就有,很随意。对象
数据转对象,对象转数据,字符串
对象转换为对象:没有变化;get
数组转换为对象:数组的键名看成属性名,值为对应值;string
但一般,若是数数字下标,则其对应属性 并不方便操做
因此一般就适合于纯字符下标的数组。
其余标量数据转换为对象:属性名为固定的“scalar”,值为该变量的值。
对于类型约束在php里不用太在乎,php属于弱类型语言。
与类有关的魔术常量:
__CLASS__,:获取其所在的类的类名。
__METHOD__:获取其所在的方法的方法名。
数据(变量)序列化和反序列化
序列化是将一个变量的数据“转换为”字符串——但并非类型转换并将该字符串“存储起来”。
反序列化就是将储存的文本文件再返回成原数据。
序列化:
$str = serialize($变量); //此时该变量的数据就变成了字符串,并存入变量$str1;
但一般的应用出,此时就应该将其保存为文件(或数据库),以下:
file_put_contents(“文本文件路径”, $str);
反序列化:
$str = file_get_contents(“文本文件路径”); //先从文本文件中取得内容
$v1 = unserialize( $str); //反序列化,此时$v1这个变量中存储的就是原来变量内容(和类型)
其余魔术方法
__sleep(), 和 __wakeup()
当对一个对象进行“序列化”操做的时候,会自动调用类中的__sleep()方法;
当“反序列化”一个对象的时候,会自动调用对应类中的__wakeup()方法;
__tostring()方法
当把一个对象看成一个“字符串”来看待(处理)的时候,会自动调用该魔术方法。
__invoke()方法
对象看成一个“方法”(函数)的时候,会自动调用该魔术方法。