PHP 引用传递

引用传递:可以将一个变量通过引用传递给函数,这样该函数就可以修改其参数的值。语法如下:

<?php
function foo(&$var)
{
    $var++;
}

$a=5;
foo($a);
// $a is 6 here
?>

注意在函数调用时没有引用符合,只有函数定义中有。光是函数定义就足够使参数通过引用来正确传递了。
以下内容可以通过引用传递:

  • 变量;
  • new 语句;
  • 从函数中返回的引用。

示例:

<?php
function &bar()
{
    $a = 5;
    return $a;
}
foo(bar());
?>

任何其他表达式都不能通过引用传递,结果未定义。例如下面引用传递的例子是无效的:

<?php
function foo(&$var)
{
    $var++;
}
function bar() // Note the missing &
{
    $a = 5;
    return $a;
}
foo(bar()); // 自 PHP 5.0.5 起导致致命错误,自 PHP 5.1.1 起导致严格模式错误
            // 自 PHP 7.0 起导致 notice 信息
foo($a = 5) // 表达式,不是变量
foo(5) // 导致致命错误
?>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,185评论 19 139
  • php 引用传递,这个东西当年学了,然后从来没用过,就忘了。偶然间发现一个很好的用法,写下此文。 能猜的结果是什么...
    黄123阅读 277评论 2 1
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,552评论 1 51
  • 前言 人生苦多,快来 Kotlin ,快速学习Kotlin! 什么是Kotlin? Kotlin 是种静态类型编程...
    任半生嚣狂阅读 26,315评论 9 118
  • 素白是08年的时候接触手工冷皂。那时还是一个在校生,那时正直青春年华,皮脂分泌过剩,课业压力也大,饮食上不规...
    素白冷制皂师阅读 943评论 0 0