PHP陣列與java陣列的區別
(1)
<?php
require_once 'Person.class.php';$array=array(110,112);
$array002=$array;
if($array002==$array)
{
echo "是同一陣列<br/>";
}else{
echo "不是同一陣列<br/>";
}
var_dump($array);
echo "<br/>";
var_dump($array002);
echo "<br/>";
$array[0]=222;//一旦$array子元素的某個引用改變,就會開闢一片新的記憶體,與$array002不同
if($array002==$array)
{
echo "是同一陣列<br/>";
}else{
echo "不是同一陣列<br/>";
}
var_dump($array);
echo "<br/>";
var_dump($array002);
?>
//輸出結果
是同一陣列
array(2) { [0]=> int(110) [1]=> int(112) }
array(2) { [0]=> int(110) [1]=> int(112) }
不是同一陣列
array(2) { [0]=> int(222) [1]=> int(112) }
array(2) { [0]=> int(110) [1]=> int(112) }
(2)//php陣列 引用
<?php
require_once 'Person.class.php';
$array=array(110,112);
$array002=&$array;//引用相同
if($array002==$array)
{
echo "是同一陣列<br/>";
}else{
echo "不是同一陣列<br/>";
}
var_dump($array);
echo "<br/>";
var_dump($array002);
echo "<br/>";
$array[0]=222;
if($array002==$array)
{
echo "是同一陣列<br/>";
}else{
echo "不是同一陣列<br/>";
}
var_dump($array);
echo "<br/>";
var_dump($array002);
?>
//輸出結果
是同一陣列
array(2) { [0]=> int(110) [1]=> int(112) }
array(2) { [0]=> int(110) [1]=> int(112) }
是同一陣列
array(2) { [0]=> int(222) [1]=> int(112) }
array(2) { [0]=> int(222) [1]=> int(112) }
(3)
<?php
require_once 'Person.class.php';
$person=new Person("wuxifu002", 110);
$array=array($person);
$array002=$array;
$array003=array($array);//拿的只是$array子元素的引用
if($array002==$array)
{
echo "是同一陣列<br/>";
}else{
echo "不是同一陣列<br/>";
}
var_dump($array);
echo "<br/>";
var_dump($array002);
echo "<br/>";
$array[1]=new Person("hello", 0);//一旦陣列$array有新的元素新增,會開闢一個新的記憶體與$array002不同
$array[0]->setName("wuxifu003");
if($array002==$array)
{
echo "是同一陣列<br/>";
}else{
echo "不是同一陣列<br/>";
}
var_dump($array);
echo "<br/>";
var_dump($array002);
echo "<br/>";
var_dump($array003);
?>
//輸出結果
不是同一陣列
array(1) { [0]=> object(Person)#1 (2) { ["name:private"]=> string(9) "wuxifu002" ["age:private"]=> int(110) } }
array(1) { [0]=> object(Person)#1 (2) { ["name:private"]=> string(9) "wuxifu002" ["age:private"]=> int(110) } }
不是同一陣列
array(2) { [0]=> object(Person)#1 (2) { ["name:private"]=> string(9) "wuxifu003" ["age:private"]=> int(110) } [1]=> object(Person)#2 (2) { ["name:private"]=> string(5) "hello" ["age:private"]=> int(0) } }
array(1) { [0]=> object(Person)#1 (2) { ["name:private"]=> string(9) "wuxifu003" ["age:private"]=> int(110) } }
array(1) { [0]=> array(1) { [0]=> object(Person)#1 (2) { ["name:private"]=> string(9) "wuxifu003" ["age:private"]=> int(110) } } }
(4)//java陣列 除了基本資料型別,其它全部是引用型別