PHP 函数返回值

本文最后更新于:2024年3月18日 凌晨

PHP 函数返回值

  • PHP函数可以使用return关键字返回一个单值。
1
2
3
function return_one(){
return 42;
}
  • 要返回多个值,则需要返回一个数组。
1
2
3
function return_two(){
return array("Fred",35);
}
  • 默认从函数中复制出值,在函数声明时如果函数名前有&符号的话,则返回对其返回值的引用(别名)
1
2
3
4
5
6
7
$names = array("Fred","Barney","Wilma","Betty");
function & find_one($n){
global $names;
return $names[$n];
}
$person = & find_one(1); //Barney
$person = "Barnetta"; // 改变了$names[1]
  • 这段代码中,find_one()函数返回$names[1]的别名,而不是$names[1]值得拷贝,因为我们是通过引用赋值,所以$personname[1]的别名。并且第二个赋值操作改变了$names[1]中的值。
  • 这个技术有时被用于高效地从函数返回大型字符串或数组的值,然而,PHP的写时复制/浅复制(copy-on-write/shallow-copy)机制通常意味着从函数返回一个引用并不是必要的,除非你知道你可能将会改变数据,否则不必为一些大型的数据返回引用,返回引用的缺点是它比返回值慢,并且需要依赖shallow-copy的机制来确保在数据改变之前不会生成数据的副本。

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!