php中函數參數傳遞的三種方式及區別
1.按值傳遞( pass by value)
使用這種方式,呼叫函數本省不對實參進行操作,也就是說,即使形參的值在函數中發生了變化,實參的值也完全不會受到影響,仍為呼叫前的值。這相當於把實參賦值一份給形參,然後呼叫後記憶體回收。
<span style="font-size:18px;"><strong>#include<stdio.h> int sum(int x,int y) { return x+y; } int main() { int result=sum(2,3);//通过直接对sum传递参数 printf("%d\n",result); return 0; }</strong></span>
2.位址傳遞(pass by pointer)
位址傳遞與按值傳遞的不同在於,它把實參的儲存位址傳送給對應的形參,從而使得形參指針和實參指針指向同一個位址。因此,被呼叫函數中對形參指標所指向的位址中內容的任何變更都會影響到實參。
#include<stdio.h> int sum(int* x,int* y) { return *x+*y; } int main() { int a,b; a=2; b=3; int result=sum(&a,&b);//通过地址对sum传递参数 printf("%d\n",result); return 0; }
3.引用傳遞(pass by reference)
以引用為參數,則既可以使得對形參的任何操作都能改變相應的數據,又使得函數呼叫顯得方便、自然。引用傳遞方式是在函數定義時在形參前面加上引用運算子「&」。引用相當於實參的別名,他和實參是同一個變數或數值,它的改變就是實參的改變。
<span style="font-size:18px;"><strong>#include<stdio.h> int sum(int& x,int& y)<span style="color:#ff0000;">//定义引用类型</span> { return x+y; } int main() { int a,b; a=2; b=3; int result=sum(a,b);//通过引用对sum传递参数 printf("%d\n",result); return 0; }</strong></span>
推薦教學:《PHP影片教學》
以上是php中函數參數傳遞的3種方式與區別(附詳解)的詳細內容。更多資訊請關注PHP中文網其他相關文章!