php中newstdclass()用在什么场景
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php中newstdclass()用在什么场景,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1919字,纯文字阅读大概需要3分钟。
内容图文
请问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,每个字段就成了属性
内容总结
以上是互联网集市为您收集整理的php中newstdclass()用在什么场景全部内容,希望文章能够帮你解决php中newstdclass()用在什么场景所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。