PHP容易出错之一:PHP数组传递是值传递而非引用传递

简介:

PHP中数组传递是值传递而非引用传递。

在调用函数时通过将PHP数组作为实参赋给形参,在函数中修改,并不会影响到数组本身。

说明此过程中的传递为值传递,数组变量并非是指向此数组本身的引用,PHP数组本身以值的形式存在,同时形参是对数组的拷贝。

这点与其他一些语言不同(如c、Js等)很不相同,值得注意!

复制代码
 1 $arr = array(
 2     'name' => 'corn',
 3     'age' => '24',
 4 );
 5 
 6 test_arr($arr);
 7 
 8 function test_arr($arr){
 9     $arr['name'] = 'qqyumidi';
10 }
11 
12 print_r($arr); //result: Array ( [name] => corn [age] => 24 )
复制代码

Js代码如下:

复制代码
1 var arr = new Array('corn', '24');
2 
3 test_arr(arr);
4 
5 function test_arr(arr){
6     arr[0] = 'qqyumidi';
7 }
8 
9 console.log(arr);  //result:["qqyumidi", "24"] 
复制代码

如果需要对PHP中的值传递使用引用传递效果,可以在形参前面加上取地址符&。

复制代码
1 $aa = 100;
2 
3 test_vars($aa);
4 
5 function test_vars(&$aa){
6     $aa = 200;
7 }
8 
9 print_r($aa);   //result: 200
复制代码

 

---------------------------------------------------------------------------------
笔者水平有限,若有错漏,欢迎指正,如果转载以及CV操作,请务必注明出处,谢谢!
分类: PHP

本文转自Windstep博客园博客,原文链接:http://www.cnblogs.com/lwbqqyumidi/archive/2013/01/31/2886896.html,如需转载请自行联系原作者
目录
相关文章
|
2天前
|
安全 PHP 开发者
PHP中的数组操作技巧
【8月更文挑战第29天】在PHP编程中,数组是一个基本且强大的数据结构。本文将通过浅显易懂的语言和生动的比喻,带你深入理解PHP数组的操作技巧。我们将一起探讨如何高效地使用数组函数,以及如何通过这些技巧来优化你的代码。无论你是PHP初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的信息。让我们一起探索数组的世界,发现它的无限可能!
|
4天前
|
数据处理 PHP 开发者
PHP中的数组操作技巧:提高代码效率与可读性
【8月更文挑战第27天】在PHP开发中,数组是数据处理的核心。掌握数组的操作不仅能提升代码的执行效率,还能增强代码的可读性。本文将通过实际的编码示例,展示如何在PHP中高效地使用数组,包括数组的创建、遍历、排序、查找和过滤等常用操作,以及一些高级技巧,如使用匿名函数和数组的解构赋值。无论你是新手还是有经验的开发者,这些技巧都将对你的PHP编程之旅大有裨益。
|
7天前
|
设计模式 算法 PHP
深入理解PHP中的数组操作探索编程之美:从代码到架构的思维转变
【8月更文挑战第24天】在PHP编程中,数组是基础且强大的数据结构。本文将通过浅显易懂的方式,介绍如何在PHP中高效地操作数组,包括创建、遍历、排序和过滤等常见任务。无论你是初学者还是有经验的开发者,这篇文章都会带给你新的启示。 【8月更文挑战第24天】在编程的世界中,代码不仅仅是冰冷的字符排列,它承载着思想、解决问题的智慧和创新的灵魂。本文将通过个人的技术感悟,带领读者从编写单一功能的代码片段出发,逐步深入到整个软件架构的设计哲学,探索如何将代码块转化为高效、可维护和可扩展的系统。我们将一起见证,当代码与架构思维相结合时,如何引发技术实践的革命性飞跃。
|
7天前
|
存储 PHP 数据库
深入理解PHP中的数组操作
【8月更文挑战第24天】在编程世界中,数组是数据结构的基石之一。PHP作为广受欢迎的后端开发语言,其对数组的强大支持和灵活操作让开发者能够高效地处理数据集合。本文将深入浅出地探讨PHP中数组的基本概念、常用函数以及高级技巧,帮助读者提升在PHP项目中处理数组的能力。
|
1天前
|
存储 数据处理 PHP
探索PHP中的数组操作技巧
【8月更文挑战第30天】在PHP编程的世界中,数组是数据存储和操作的核心。掌握数组的各种操作,可以大幅提高代码的效率和可读性。本文将带你深入理解PHP数组的创建、遍历、排序以及多维数组的使用,让你在处理复杂数据时更加得心应手。
|
3天前
|
存储 测试技术 数据处理
深入理解PHP中的数组操作技巧
【8月更文挑战第28天】在PHP编程中,数组是一种基本而强大的数据结构。本文将通过深入浅出的方式,介绍PHP数组的基本操作、高级技巧及性能优化方法,帮助开发者更有效地使用数组解决实际问题。
|
27天前
|
JSON 前端开发 JavaScript
php中JSON或数组到formData的键值对转换
转换JSON或数组到formData格式的键值对并不复杂。PHP的 `json_decode()`与 `http_build_query()`是实现这一转换过程的关键函数。理解这个转换过程对于开发中处理各种AJAX请求时调整数据格式至关重要。这样,无论是处理来自客户端的JSON字符串,还是服务器端的数组数据,都能够灵活地转换为适合网络传输的格式,确保数据交换的顺畅和高效。
38 4
|
2月前
|
Serverless PHP
【PHP常用函数封装】 php 判断两个数组所有的值是否是完全相等
【PHP常用函数封装】 php 判断两个数组所有的值是否是完全相等
25 3
|
2月前
|
Serverless PHP
【PHP常用函数封装】 php 判断a数组里是否完全包含b数组
【PHP常用函数封装】 php 判断a数组里是否完全包含b数组
22 1
|
2月前
|
存储 PHP 索引
下一篇
云函数