您的位置:首页 > 编程语言 > PHP开发

如何"引用"传递参数从一个函数中得到多个返回值

2013-02-19 11:02 274 查看
通过“引用”传递参数的方法从一个函数中得到多个返回值。就像三元运算符一样,大部分受过正式编程训练的程序员都知道这个技巧。但是那些 HTML 背景大于 Pascal 背景的程序员都或多或少的有过这样的疑问“在仅能使用一次 return 的情况下,从一个函数里返回多个值?”答案就是在变量前加上一个 “&” 符号,通过“引用”传递而非“值”传递。

看见这段话 顿时觉得躺枪了.. 作为一个半路出家的自学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

(

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

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

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

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

)

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

<?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语言中还是有不少差别的 )
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php的&