Home > Backend Development > PHP Tutorial > php中new stdclass()用在什么场景

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-06-06 20:09:56
Original
1196 people have browsed it

请问new stdclass()是什么作用,一般用在什么场景?
谢谢。

回复内容:

请问new stdclass()是什么作用,一般用在什么场景?
谢谢。

感谢提问,在stackOverFlow找到了答案,下面翻译过来:
1、在返回特定数据类型的时候,使用stdClass,如:

<code>$person
   -> name = "John"
   -> surname = "Miller"
   -> address = "123 Fake St"</code>
Copy after login

2、在返回同类型数据的列表时使用Array,如:

<code>  "John Miller"
  "Peter Miller"
  "Josh Swanson"
  "Harry Miller"</code>
Copy after login

3、在返回特定类型的列表时,stdClass、array并用,如:

<code> $person[0]
    -> name = "John"
    -> surname = "Miller"
    -> address = "123 Fake St"


  $person[1]
    -> name = "Peter"
    -> surname = "Miller"
    -> address = "345 High St"</code>
Copy after login

个人认为:在不同的用途下使用array或stdClass,或两者结合,更加便捷。

我常用在保存数据 主要是开销比较小

$obj = new stdClass;
$obj->test = 'abc';
$obj->other = 6.2;
$obj->arr = array (1, 2, 3);
Copy after login

比数组更便捷

测试

$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);
}
Copy after login

结果

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,每个字段就成了属性

Related labels:
php
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Issues
php data acquisition?
From 1970-01-01 08:00:00
0
0
0
PHP extension intl
From 1970-01-01 08:00:00
0
0
0
How to learn php well
From 1970-01-01 08:00:00
0
0
0
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template