类的自动加载是外面的页面中,并不需要去“引入”(包含)类文件,但是程序会在需要一个类的时候就自动去“动态加载”该类。
1.使用__autoload魔术函数。它自己引
2.使用spl_autoload_register函数
对象也可以可以使用foreach语句进行遍历,有两点注意:
1,只能遍历属性。
2,只能遍历“看得到”的属性——代码所在范围可访问。
内置标准类,直接new一个,里面属性只要用就有,很随意。
数据转对象,对象转数据,
对象转换为对象:没有变化;
数组转换为对象:数组的键名当作属性名,值为对应值;
但通常,如果数数字下标,则其对应属性 并不方便操作
所以通常就适合于纯字符下标的数组。
其他标量数据转换为对象:属性名为固定的“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()方法
对象当作一个“方法”(函数)的时候,会自动调用该魔术方法。
原文地址:https://www.cnblogs.com/biruofeng/p/10550575.html