函數都是單一返回值的,沒有多返回值的情況。
如果說有的話,有以下兩種方法勉強可以說是多返回值的情況:
1,返回一個數組。數組可以存儲多個數據,從而實現多返回值情況。
2,利用引用參數達到返回的效果。函數返回值設置成BOOL型用以表明函數的返回狀態,具體功能實現都用引用參數實現。
個人推薦使用第二種方法,在PHP中大多函數都是以BOOL型作為返回值返回函數狀態的。這樣可以避免一些細節問題。
用指針返回結果會很麻煩。
要特別小心不要把函數中的局部變量的地址返回出來。
返回結構本身沒有問題,但是結構中的指針又容易出狀況。
好的做法,返回結構,並且不要在結構中包含指針類型成員。
如果一定需要返回指針,這種情況多數在於字符串,這時候,你應該傳入一個已經分配了內存的指針和長度,在函數中填充。還有一種情況,就是初始化某個結構,這時候你不應當提供返回值,而是把結構的地址作為參數傳入。
在我們自己的代碼中:
不應該在函數的返回值中使用或者包含指針。
任何需要傳出的指針,都應該從參數中傳入並且提供長度信息。
函數內部使用的指針要自己在內部銷毀,不要銷毀的,必須要從參數中獲得。
除非你的代碼本身就是做內存分配用的,否則要遵守上面的建議。