数组赋值在不同语言中的差异
不同的编程语言,基本语法一致,但由于各自的设计结构及使用范围不同而导致一些细微的语法差异。以下介绍一个数组在赋值的时候结果不同的例子。
PHP 语言中的情况:
<?php
$a = array(1, 2, 3, 4);
$b = $a;
$b[1] = 1000;
echo (">> a[1] = " . $a[1] . '<br>');
echo (">> b[1] = " . $b[1]);
?>
输出结果为:
>> a[1] = 2 >> b[1] = 1000
Java 语言中的情况:
public class Test {
public static void main(String args[]) {
int[] a = {1,2, 3, 4};
int[] b = a;
b[1] = 1000;
System.out.println(">> a[1] = " + a[1]);
System.out.println(">> b[1] = " + b[1]);
}
}
输出结果为:
>> a[1] = 1000 >> b[1] = 1000
结论:在 PHP 语言中数组是传值,而在 Java 语言中数组是传址,即引用。
特别注意,基本类型(整型、字符串型 等)在这两种语言中在赋值的时候都是按照传值的方式来进行,对象之间都是按照传引用的方式进行,而数组却有差异,以上已经说明。
