PHP 5.10创建对象新方法……

class C{
	public $a = 'a';
	protected $b = 'b';
	public function a(){
		echo $this->b;
	}
	
	static public function __set_state($vars){
		$t = new C;
		$t->a = $vars['b'];
		$t->b = $vars['a'];
		return $t;
	}
}

$d = C::__set_state(array(
	'a' => 'a+',
	'c' => 'c',
));

var_dump($d);

 

可以获得如下输入:

 

object(C)#4 (2) {
  ["a"]=>
  NULL
  ["b:protected"]=>
  string(2) "a+"
}

这个__set_state本来是做可读的serialize(var_export)使的magic method的~不过也的确可以这样bt的集中赋值,甚至给私有变量赋值……

其他的不说了~很bt

琢磨琢磨有什么用处没……  

http://docs.php.net/var_export 这里第一条回复,有人比较了 serialize / include / eval 三种方法载入15~100条索引的数组的速度,证明serialize最快

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值