当前位置: 首页 > 后端技术 > PHP

空数组和空对象

时间:2023-03-30 01:59:20 PHP

在实际项目中,往往需要提前声明一个空数组或一个空对象,以防止由于缺少数据而导致的错误。以php为例,声明一个空数组非常简单,$array=[],数组变量$array的创建就完成了。但是要创建一个空对象,可不是数组那么简单。整理了几种PHP创建空对象的方法。比较正式的如下:1:$object=newStdClass();2:$对象=(对象)[];还有几种可选的声明方法,虽然也可以用,但是显得多余1:classobject{};$对象=新对象;2:$object=json_decode('{}');作为经常使用的空数组或者空对象,也有它们更适合各自的使用场景,我这里举个例子来说明。Object:$user=newStdClass();$user->name='大宝';$user->action='running';$newuser=$user;$newuser->name='小宝';$newuser->action='jumping';print_r($user);print_r($newuser);结果为:stdClassObject([name]=>小宝[action]=>jumping)stdClassObject([name]=>小宝宝[action]=>jumping)array:$user=[];$user['name']='大宝';$user['action']='跑步';$newuser=$user;$newuser['名字']='小宝';$newuser['action']='跳跃';print_r($user);echo"
";print_r($newuser);结果为:Array([name]=>大宝[action]=>running)Array([name]=>小宝[action]=>jumping)从上面可以看出,对于object,newuser被赋值为valueuser,但是没有新打开的内存存储变量,改变newuser的属性也改变了user的属性,并不是新建一个副本。而数组则不然,newuser和user都有自己独立的内存,存储不同的数据。因此可以得出结论,在单变量赋值的情况下,使用对象可以节省更多的内存开销,应该优先使用对象;而数组比较占内存,如果有赋值和传递变量的需求,应该优先考虑。使用数组