首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在php函数中引用变量是否有助于节省内存?

在php函数中引用变量是否有助于节省内存?
EN

Stack Overflow用户
提问于 2010-06-27 09:04:56
回答 1查看 4.8K关注 0票数 20

例如,当比较内存管理方式时,以下两个函数是否相同:

代码语言:javascript
复制
$hello = 'hello';

my_echo($hello);

//Better or worse than
my_echo_ref($hello);

//case 1, no referencing:
function my_echo($word) {
 echo $word;
} 

//case 2, referencing:
function my_echo_ref(&$word) {
  echo $word;
}
EN

回答 1

Stack Overflow用户

发布于 2018-11-07 19:51:16

如果您使用数组作为数据源,构建第二个数组,并通过为数组分配一个变量来简化数组维度,则通过引用更好。

示例:

代码语言:javascript
复制
$clients_favorite_things=array_fill(0,20,array("movies"=>array("movie 1","movie 2","movie 3"),"books"=>array("book 1","book 2","book 3") ));
$clients = array_fill(0,20,array());

//Goal is to have a final clients array with only movies data assuming the index of this array is the client id

$m1 = memory_get_usage(); 
foreach($clients as $client_id => $client_data){
    $favorite_things=$clients_favorite_things[$client_id]; //this does copy data
    $clients[$client_id]["favorite_things"]=$favorite_things["movies"];
}
print 'APROX size ' . ( memory_get_usage() - $m1 ) . '<br/>';

$m1 = memory_get_usage(); 
foreach($clients as $client_id => $client_data){
    $favorite_things=&$clients_favorite_things[$client_id]; //assign by reference: this wont copy data
    $clients[$client_id]["favorite_things"]=$favorite_things["movies"];
}
print 'APROX size ' . ( memory_get_usage() - $m1 ) . '<br/>';

print_r($clients); 

APROX大小: 7520

APROX大小: 856

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3126013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档