学斋随笔,初九潜龙勿用,-51关于类的自动加载,遍历,魔术常量,序列化反序列化

Posted biruofeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学斋随笔,初九潜龙勿用,-51关于类的自动加载,遍历,魔术常量,序列化反序列化相关的知识,希望对你有一定的参考价值。

  类的自动加载是外面的页面中,并不需要去“引入”(包含)类文件,但是程序会在需要一个类的时候就自动去“动态加载”该类。

  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()方法

  对象当作一个“方法”(函数)的时候,会自动调用该魔术方法。

 

 

  

  

 

以上是关于学斋随笔,初九潜龙勿用,-51关于类的自动加载,遍历,魔术常量,序列化反序列化的主要内容,如果未能解决你的问题,请参考以下文章

学斋随笔,初九潜龙勿用,-44关于Vue

学斋随笔,初九潜龙勿用,-04

学斋随笔,初九潜龙勿用,-07js方法,排序查找

潜龙勿用

易经--总纲

心随笔浮沉年华