如何"引用"传递参数从一个函数中得到多个返回值
2013-02-19 11:02
274 查看
通过“引用”传递参数的方法从一个函数中得到多个返回值。就像三元运算符一样,大部分受过正式编程训练的程序员都知道这个技巧。但是那些 HTML 背景大于 Pascal 背景的程序员都或多或少的有过这样的疑问“在仅能使用一次 return 的情况下,从一个函数里返回多个值?”答案就是在变量前加上一个 “&” 符号,通过“引用”传递而非“值”传递。
看见这段话 顿时觉得躺枪了.. 作为一个半路出家的自学phper 基础真是一点都不牢固 于是回头复习了下关于"引用"传递的知识 写在这里 记录一下
一直以来从一个函数中得到多个返回值 用的是返回数组的方法 见例子:
输出结果:
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
)
下面是利用引用传值的例子:
返回值分别是 1000,2000,22
把test中的2个return注释换掉 输出内容就变成了:1000,2000,3000
关键就在于&符号的属于取地址运算符 好吧 先记到这里 关于&跟* ...难道我要再去翻一遍c语言吗...(其实php中的&符号跟c语言中还是有不少差别的 )
看见这段话 顿时觉得躺枪了.. 作为一个半路出家的自学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语言中还是有不少差别的 )
相关文章推荐
- angularjs指令中的scope引用父作用域的函数,如何传递参数
- 2017033000C++函数参数和返回值三种传递方式:值传递、指针传递和引用传递(着重理解)
- string类型在参数传递中如何作为引用,如何在函数外修改函数内的string类型
- Matlab的函数中如何实现按引用传递参数
- C++函数参数和返回值三种传递方式:值传递、指针传递和引用传递(着重理解)
- C++函数参数和返回值三种传递方式:值传递、指针传递和引用传递(着重理解)
- 如何将二维数组作为函数的参数传递
- js得到地址栏传递参数的函数
- c++中函数参数传递(值传递、指针传递,引用传递)
- 汇编学习第五课之函数参数传递,函数返回值
- opencv IplImage各参数详细介绍以及如何从一个JPEG图像数据指针转换得到IplImage
- 字符串传递给函数模板的引用参数出现出人意料的结果
- 函数参数的传递(引用)
- Python函数参数传递:传值还是传引用
- JavaSE8基础 String是特殊的引用类型,在函数的参数传递中只能把它当做 值类型来看待
- 面试之路(18)-java的函数参数传递类型之值传递还是引用传递
- <python>Python的函数参数传递:传值?引用?
- C++ 常量指针或者常量引用作为函数参数传递的原因
- 函数:按引用传递函数参数进行操作
- JavaScript中函数参数的值传递和引用传递