php中函數引數傳遞的3種方式和區別(附詳解)

2020-07-16 10:05:56

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("%dn",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("%dn",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("%dn",result);  
        return 0;  
    }</strong></span>

推薦教學:《PHP視訊教學

以上就是php中函數引數傳遞的3種方式和區別(附詳解)的詳細內容,更多請關注TW511.COM其它相關文章!