如何"引用"傳遞參數從一個函數中獲得多個返回值

經過「引用」傳遞參數的方法從一個函數中獲得多個返回值。就像三元運算符同樣,大部分受過正式編程訓練的程序員都知道這個技巧。可是那些 HTML 背景大於 Pascal 背景的程序員都或多或少的有過這樣的疑問「在僅能使用一次 return 的狀況下,從一個函數裏返回多個值?」答案就是在變量前加上一個 「&」 符號,經過「引用」傳遞而非「值」傳遞。php

看見這段話 頓時以爲躺槍了.. 做爲一個半路出家的自學phper 基礎真是一點都不牢固 因而回頭複習了下關於"引用"傳遞的知識 寫在這裏 記錄一下程序員

一直以來從一個函數中獲得多個返回值 用的是返回數組的方法 見例子:編程

<?php

function results($string)

{

$result = array();

$result[] = $string;//原字符串

$result[] = strtoupper($string);//所有換成大寫

$result[] = strtolower($string);//所有換成小寫

$result[] = ucwords($string);//單詞的首字母換成大寫

return $result;

}

$multi_result = results('The quick brown fox jump over the lazy dog');

print_r($multi_result);

?>

輸出結果:數組

Array函數

(ui

[0] => The quick brown fox jump over the lazy dogspa

[1] => THE QUICK BROWN FOX JUMP OVER THE LAZY DOGcode

[2] => the quick brown fox jump over the lazy dog字符串

[3] => The Quick Brown Fox Jump Over The Lazy Dogstring

)

    下面是利用引用傳值的例子:

<?php
function test(&$a,&$b)
{
$c = $a+$b; 
$a = 1000; 
$b = 2000; 
return $c; 
//return $a+$b; 
}

$a = 10; 
$b = 12; 

$c = test($a,$b); 

echo $a."<br/>"; 
echo $b."<br/>"; 
echo $c."<br/>"; 
?>

返回值分別是 1000,2000,22

把test中的2個return註釋換掉  輸出內容就變成了:1000,2000,3000

        關鍵就在於&符號的屬於取地址運算符 好吧 先記到這裏 關於&跟* ...難道我要再去翻一遍c語言嗎...(其實php中的&符號跟c語言中仍是有很多差異的 )

相關文章
相關標籤/搜索