您好,欢迎访问一九零五行业门户网

php中new stdclass()用在什么场景

请问new stdclass()是什么作用,一般用在什么场景?
谢谢。
回复内容: 请问new stdclass()是什么作用,一般用在什么场景?
谢谢。
感谢提问,在stackoverflow找到了答案,下面翻译过来:
1、在返回特定数据类型的时候,使用stdclass,如:
$person -> name = john -> surname = miller -> address = 123 fake st
2、在返回同类型数据的列表时使用array,如:
john miller peter miller josh swanson harry miller
3、在返回特定类型的列表时,stdclass、array并用,如:
$person[0] -> name = john -> surname = miller -> address = 123 fake st $person[1] -> name = peter -> surname = miller -> address = 345 high st
个人认为:在不同的用途下使用array或stdclass,或两者结合,更加便捷。
我常用在保存数据 主要是开销比较小
$obj = new stdclass;$obj->test = 'abc';$obj->other = 6.2;$obj->arr = array (1, 2, 3);
比数组更便捷
测试
$size = 200000;mark();$sc = new stdclass;foreach(range(1,5) as $i){ $sc->$i = pow($i,2);}mark();dump('sc',1);mark();foreach(range(1,$size) as $i){ $scn = sc . $i; // $$scn = $sc; $arr_sc[] = $sc;}mark();dump('sc');mark();$arr =[];foreach(range(1,5 ) as $i){ $arr[] = pow($i,2);}mark();dump('arr',1);mark();foreach(range(1,$size) as $i){ $arrn = arr . $i; // $$arrn = $arr; $arr_arr[] = $arr;}mark();dump('arr');function dump($var,$size = 200000){ global $mem_size,$times,$$var; // xdebug_debug_zval($var); echo total: .round(($mem_size[count($mem_size)-1]-$mem_size[count($mem_size)-2])/pow(1024,2),3) . mb . avg:. round(($mem_size[count($mem_size)-1]-$mem_size[count($mem_size)-2])/(1024*$size),3) . kb . time:. round(($times[count($times)-1] -$times[count($times)-2]),3) .\n;}function mark($type=0){ global $mem_size,$times; $mem_size[] = memory_get_usage(); $times[] = microtime(true);}
结果
total:0.002mb avg:1.773kb time:0
total:18.785mb avg:0.096kb time:0.101
total:0.001mb avg:1.227kb time:0
total:18.785mb avg:0.096kb time:0.1
orm中要用,把查询的每一条纪录转换成一个class,每个字段就成了属性
其它类似信息

推荐信息