PHP 值传递引用传递

结论

参数传递既可以是值传递,也可以是引用传递
应用就传递&$, 默认值传递

case

在 PHP 中,$tcSubOrdersInsert[] 这种语法本身并不是关于值传递或引用传递的直接体现,下面分别从不同场景来分析其涉及的值传递和引用传递情况。

1. $tcSubOrdersInsert[] 作为数组赋值操作

当你使用 $tcSubOrdersInsert[] 进行数组元素添加时,例如:
在这个过程中,是值传递。具体解释如下:
  • $value 是一个普通的变量,它存储了一个值(这里是字符串 'example')。
  • 当执行 $tcSubOrdersInsert[] = $value; 时,PHP 会将 $value 所存储的值复制一份,然后添加到 $tcSubOrdersInsert 数组的末尾。后续对 $value 的修改不会影响 $tcSubOrdersInsert 数组中的对应元素,反之亦然。

2. $tcSubOrdersInsert[] 与函数参数传递

如果将 $tcSubOrdersInsert 作为参数传递给函数,那么情况会有所不同:

值传递

在上述代码中,$tcSubOrdersInsert 作为参数传递给 addElementByValue 函数时,是值传递。函数内部对 $array 的修改不会影响到函数外部的 $tcSubOrdersInsert 数组。

引用传递

在这个例子中,通过在函数参数前加上 & 符号,将 $tcSubOrdersInsert 以引用的方式传递给 addElementByReference 函数。函数内部对 $array 的修改会直接影响到函数外部的 $tcSubOrdersInsert 数组。
综上所述,$tcSubOrdersInsert[] 本身的赋值操作是值传递,而在函数参数传递时,既可以是值传递也可以是引用传递,取决于函数定义时是否使用了引用符号 &

资料

Loading...
文章列表
王小扬博客
云原生
Git
Elasticsearch
Apollo
产品
Think
生活技巧
软件开发
计算机网络
CI
DB
设计
缓存
Docker
Node
操作系统
Java
大前端
Nestjs
其他
PHP
AI