public、protected与private在序列化时的区别
<?php
class aaa{
public $temp=111;
public $filename="test_a";
}
class bbb{
protected $temp=222;
protected $filename="test_b";
}
class ccc{
private $temp=333;
private $filename="test_c";
}
echo serialize(new aaa());
echo '<br/>';
echo serialize(new bbb());
echo '<br/>';
echo serialize(new ccc());
echo '<br/>';
?>
结果是
O:3:"aaa":2:{s:2:"temp";i:111;s:8:"filename";s:6:"test_a";}
O:3:"bbb":2:{s:5:"%00*%00temp";i:222;s:11:"%00*%00filename";s:6:"test_b";}
O:3:"ccc":2:{s:7:"%00ccc%00temp";i:333;s:13:"%00ccc%00filename";s:6:"test_c";}
public无标记,变量名不变,长度不变: s:2:“op”;i:2;
protected在变量名前添加标记%00*%00,长度+3: s:5:"%00*%00temp";i:2;
private在变量名前添加标记%00(classname)%00,长度+2+类名长度: s:7:"%00ccc%00temp";i:2;