protected 声明的字段为保护字段,在所声明的类和该类的子类中可见,但在该类的对象实例中不可见。
因此保护字段的字段名在序列化时,字段名前面会加上 \0*\0 的前缀,注意,这里的 \0 表示 ASCII 码为 0
的字符,也就是我们经过 urlencode 后看到的 %00 。
private声明的字段为私有字段,只在所声明的类中可见,在该类的子类和该类的对象实例中均不可见。 因此私有字段的字段名在序列化时,字段名前面会加上\0\0 的前缀, 这里 表示的是声明该私有字段的类的类名,而不是被序列化的对象的类名。因为声明该私有字段的类不一定是被序列化的对象的类,而有可能是它的祖先类。
var 和 public声明的字段都是公共字段,因此它们的字段名的序列化格式是相同的。公共字段的字段名按照声明时的字段名进行序列化,但序列化后的字段名中不包括声明时的 变量前缀符号 $。
public、protected与private在序列化时的区别
最新推荐文章于 2021-12-24 16:12:40 发布