当前位置: 首页 > 编程笔记 >

PHP 通过引用分配

呼延修然
2023-03-14
本文向大家介绍PHP 通过引用分配,包括了PHP 通过引用分配的使用技巧和注意事项,需要的朋友参考一下

示例

这是引用的第一阶段。本质上,当您通过引用进行分配时,就是允许两个变量共享相同的值。

$foo = &$bar;

$foo和$bar是相等的在这里。他们没有指向对方。它们指向同一位置(“值”)。

您还可以在array()语言结构中通过引用进行分配。虽然不是严格按参考分配。

$foo = 'hi';
$bar = array(1, 2);
$array = array(&$foo, &$bar[0]);

但是请注意,数组内部的引用具有潜在的危险。使用右侧的引用进行常规(不是通过引用)分配不会将左侧变成引用,但是数组内部的引用将保留在这些常规分配中。这也适用于按值传递数组的函数调用。

通过引用分配不仅限于变量和数组,它们还存在于函数和所有“按引用传递”关联中。

function incrementArray(&$arr) {
    foreach ($arr as &$val) {
        $val++;
    }
}

function &getArray() {
    static $arr = [1, 2, 3];
    return $arr;
}

incrementArray(getArray());
var_dump(getArray()); // 打印一个数组[2,3,4]

分配是上述功能定义中的关键。你不能通过引用传递一个表达式,只有一个值/变量。因此$ain的实例化bar()。

 类似资料:
  • 根据下面的php代码,输出为 我理解&$ref是通过引用传递的。但在赋值之后类似($row=&$ref;)在任何地方,每当“row”更改值时,“ref”也会更改为与“row”相同的值。真的很迷惑。似乎=不仅将右值赋给左值。有人能核实一下吗?

  • 本文向大家介绍PHP通过引用传递参数用法分析,包括了PHP通过引用传递参数用法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP通过引用传递参数用法。分享给大家供大家参考,具体如下: 先看一个手册上的示例: 输出: 如果没有这个&符号, 输出: 更多关于PHP相关内容感兴趣的读者可查看本站专题:《php常用函数与技巧总结》、《php面向对象程序设计入门教程》、《PHP数学运算技巧总

  • 问题内容: 我有以下代码: 有人可以解释为什么输出是:零一二二。 摘自zend认证学习指南。 问题答案: 因为在第二个循环中,仍然是对最后一个数组项的引用,所以每次都将其覆盖。 您可以看到这样的内容: 如您所见,最后一个数组项采用当前循环值:“零”,“一个”,“两个”,然后就是“两个” …:)

  • 问题内容: 我想知道在您仅读取变量时是否将其作为按引用传递的优良作法,还是应始终将其作为值传递。 引用传递示例: 传递值的示例: 哪个更好 ?例如,如果我要循环运行1000次? 循环示例: 问题答案: 如果您打算传递一个 值 (因此该函数不会对其进行修改) ,则没有理由通过引用传递它:这只会使您的代码更难以理解,因为人们会认为“ 此函数可以修改我将要修改的内容。传递给它-哦,它没有修改? ” 在您

  • 问题内容: 我刚遇到一个错误。 当我尝试分配这样的对象时: 我得到的错误是“不赞成通过引用分配new的返回值”。实际上,我一直在寻找解决方案,但是我唯一看到的就是拒绝php.ini的政策(error_reporting)。我也尝试过,但是没有用。 真令人困惑。希望您能帮助我。提前致谢。 问题答案: 在PHP5中,不赞成使用这种用法 您确定您没有在示例代码中漏号吗?这将生成您声明的警告,但是它不是必

  • 本文向大家介绍深入分析PHP引用(&),包括了深入分析PHP引用(&)的使用技巧和注意事项,需要的朋友参考一下 引用是什么 在 PHP 中引用意味着用不同的名字访问同一个变量内容。这并不像 C 的指针,替代的是,引用是符号表别名。注意在 PHP 中,变量名和变量内容是不一样的,因此同样的内容可以有不同的名字。最接近的比喻是 Unix 的文件名和文件本身——变量名是目录条目,而变量内容则是文件本身。