• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

php 搞代码 4年前 (2022-01-25) 7次浏览 已收录 0个评论
文章目录[隐藏]

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

回复内容:

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

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

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

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

<code>  "John Miller"  "Peter Miller"  "Josh Swanson"  "Harry Miller"</code>

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>

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

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

<code class="php">$obj = new stdClass;$obj->test = 'abc';$obj->other = 6.2;$obj->arr = array (1, 2, 3);</code>

比数组更便捷

测试

<code class="php">$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 "T<b>/本文来源gao@!dai!ma.com搞$$代^@码5网@</b><strong>搞代gaodaima码</strong>otal:" .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);}</code>

结果

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


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php中new stdclass()用在什么场景

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址