<!--
*php序列化和反序列化中public、private、public的区别
*
*文件功能。
* @author buginjava 作者
* @version 1.0 版本号
特别说明开始:
O:5:"Apple":3:{s:4:"name";s:5:"apple";s:5:"price";i:10;s:6:"weight";i:11;}
O:6:"Banana":3:{s:7:"*name";s:6:"banana";s:8:"*price";i:20;s:9:"*weight";i:21;}
O:6:"Orange":3:{s:12:"Orangename";s:6:"orange";s:13:"Orangeprice";i:30;s:14:"Orangeweight";i:31;}
由上图实验发现,区别只在于对变量名添加了标记:
public无标记,变量名不变,长度不变: s:4:"name";s:5:"apple";
protected在变量名前添加标记\00*\00,变量名字字母个数+3: s:7:"\00*\00name";s:6:"banana";
private在变量名前添加标记\00(classname)\00,变量名字字母个数+2+类名字母个数: s:12:"\00Orange\00name";s:6:"orange";
特别说明结束:
-->
<?php
class Apple{
public $name ='apple';
public $price = 10;
public $weight = 11;
}
class Banana{
protected $name = 'banana';
protected $price = 20;
protected $weight = 21;
}
class Orange{
private $name = 'orange';
private $price = 30;
private $weight = 31;
}
$a = new Apple();
echo serialize($a),'<br/>';
$b = new Banana();
echo serialize($b),'<br/>';
$c = new Orange();
echo serialize($c),'<br/>';
?>