php傳值與傳引用
發布時間: 2024-12-21 04:10:46
① php引用傳遞中的&什麼意思,有什麼用
其實圖片中的文字已經描述得很詳細了,如果你是循序漸進學到這里的,應該是可以理解的啊。
加了&就是引用傳遞,就是把實參的內存地址傳遞給函數內部的形參,這樣的話函數內部對形參的任何修改都會直接影響到外部的實參,也就是說這種情況下實參和形參其實是同一個變數;
而不加&則是值傳遞,就是把實參的值傳遞給函數內部的形參,這時候函數內部對形參的任何修改都與外部的實參沒有任何關系,不會改變實參的值。
打個比方,值傳遞就好比你給某人100塊錢,然後他拿這錢去不管怎麼花都與你無關了;而引用傳遞則好比你把自己的銀行帳號密碼都告訴某人,那麼他此後用這賬號所做的任何消費行為都與你的總資產息息相關了!
② php函數中數組作為參數時是值傳遞還是引用傳遞
默認情況下,數組是值傳遞,只有對象是引用傳遞。
③ PHP中按值傳遞和引用傳遞的區別
(1)按值傳遞:函數范圍內對值的任何改變在函數外部都會被忽略
(2)按引用傳遞:函數范圍內對值的任何改變在函數外部也能反映出這些修改
(3)優缺點:
A:按值傳遞時,php必須復制值。特別是對於大型的字元串和對象來說,這將會是一個代價很大的操作。
B.按引用傳遞則不需要復制值,對於性能提高很有好處。
<?php
header('content-type:text/html;charset=utf-8');
//探討一下array,null,對象,資源的默認傳遞方式
//結論(1)array默認是值傳遞,通過加&可以引用傳遞
//(2)null默認是值傳遞,通過加&可以引用傳遞
//(3)資源是值傳遞.通過加&可以引用傳遞
//(4)對象默認也是值傳遞,但是對象值傳遞是對象標識符
$hero=array('no1'=>'蝙蝠俠','no2'=>'超人');
$hero2=&$hero;
$hero2['no1']='蜘蛛俠';
echo'<pre>';
var_mp($hero);
var_mp($hero2);
$a=null;
$b=&$a;
$b='abc';
var_mp($a,$b);
?>
熱點內容