数据序列化/反序列化和有关类和对象的系统函数和运算符

一、数据(变量)序列化/反序列化

什么叫序列化:

  就是将一个变量的数据“转换为”字符串——但并不是类型转换。其目的(意图)是将该字符串“存储起来”(比如存为文本文件)然后在其他时间(或其他运行环境/电脑)上,将其又恢复原样。

比如:很多有些设计中,都有一个功能:保留场景及当前所有装备,武器,服装。。。。 则也就是对应了有“反序列化”工作

序列化的做法非常简单:

  1$str = serialize($变量); //此时该变量的数据就变成了字符串,并存入变量$str1;

但通常的应用出,此时就应该将其保存为文件(或数据库),如下:

  2file_put_contents(文本文件路径”,   $str);

反序列化操作也同样简单:

  1$str = file_get_contents(文本文件路径”); //先从文本文件中取得内容

  2$v1 = unserialize( $str); //反序列化,此时$v1这个变量中存储的就是原来变量内容(和类型)

举例:

     

然后在另一个文件中进行反序列化操作:

     

二、一些有关类和对象的系统函数和运算符

class_exists(), :判断某个类是否存在(定义过)

interface_exists(), :判断接口是否存在

get_class():获取某个对象的“所属类名”

get_parent_class(), :获取某个对象的“所属父类的类名”

get_class_methods(), :获取一个类的所有方法,返回一个索引数组,就是这些方法的名字。

get_class_vars(), :获取一个类的所有属性,返回一个数组,下标为属性名,值为属性值。

get_declared_classes():获得所有声明过的类(含系统中的类)

is_object():判断是否对象

get_object_vars():获得对象的所有属性,返回一个数组,下标为属性名,值为属性值

运算符:

  new

  instanceof: 判断一个对象是否是某个类的“实例”

     

注意一个现象:

     

原文地址:https://www.cnblogs.com/wjglm/p/9811315.html