php值傳遞和引用傳遞的區別

2021-08-17 04:26:23 字數 786 閱讀 3356

(1)按值傳遞:函式範圍內對值的任何改變在函式外部都會被忽略

(2)按引用傳遞:函式範圍內對值的任何改變在函式外部也能反映出這些修改

(3)優缺點:

a、按值傳遞時,php必須複製值。對於大型的字串和物件來說,這將會是乙個代價很大的操作

b、按引用傳遞則不需要複製值,利於提高效能。

例子見之:

$hello = ['m'=>"fdaf",'n'=>"fdaf",'b'=>"dfafg"];

$h = &$hello;

$h['m'] = "abc";

var_dump($hello,$h);

則輸出$hello和$h值是一樣的。

總結:

按引用傳遞時,函式內的值變化,函式的值外也相應的跟著變化;

按值傳遞則不會變化。

$a++和++$a的區別:

運算子的優先順序不一樣

*****==當++放在前面的時候,運算子優先計算,*****而++放在後面就不優先了

比如$a=1;$b+1;

那麼,echo $a++;//輸出為1;

echo  ++$b;//輸出為2;

再舉個例子

$x=1;

$y=$x++;

那麼,這個$y的值就是1;

如果將$x++寫成++$x,那麼$y就是2。

就是說,前者是先賦值再自加1,後者是先自加1再賦值。

php引用傳遞和值傳遞

主要是實參和形參的相互影響性。引用傳遞 形參的改變會影響實參 值傳遞 賦值,不相互影響 引數引用傳遞 pams1 1 function ssr params 這裡的引數的沒有 pams2 ssr pams1 echo 1 pams1 1 echo echo 2 pams2 4 echo pams1 ...

php 值傳遞和引用傳遞

a 3 b 4 引用傳遞 加 賦值後 全域性變數隨之改變稱為 引用傳遞 引用傳遞 不加 賦值後 區域性方法裡面變數會生成乙個值代替他 我們簡稱為 tmp 在方法裡面運算 然後返回給這個值 所以真實的數值沒有改變 function change c change a echo a echo 但是物件本...

引用傳遞和值傳遞的區別

有這麼一道面試題,題目如下 view plain using system public class test1 p.name,num static void a1 person p,intnum public class person 說說上面的程式產生的結果,以及產生這個結果的原因是什麼?我在以...