php 5.2.x 不被注意的细节: 数组篇

刚看了php的教程,由于php版本的问题发现数组这边有地方可以研究
针对 php5.2.5 做了几个实验发现:

 

1、



$arr = array("a" => 1,"b" => 2,"c" => 3);

但是如果这样定义数组会报编译错误:



$arr = array("a" = 1,"b" = 2,"c" = 3);

所以定义数组的时候只能用 =>

 

2、



$arr = array("a" => 1,"b" => 2,"c" => 3);
echo $arr[0];
echo $arr[1];

打出来的是一片空白,这样才打的出来:



echo $arr["a"];

 


3、增加元素或修改元素的时候只能用 = 了,不能用 =>



$arr = array("a" => 1,"b" => 2,"c" => 3);
$arr["c"] => 6;


像这样在以前的版本中也许可以使用,但是到了 5.2.5 就会出现编译错误
增加元素或修改元素要像以下这样写:



$arr = array("a" => 1,"b" => 2,"c" => 3);
$arr["d"] = 4;
$arr["c"] = 6;
删除元素要使用 unset


unset ($arr["c"]);

 

4、做个实验,猜猜这样打出来是什么:



$arr = array("a" => 1,2,"b" => 3,4);
$arr[] = 5;
foreach($arr as $key => $value)
{
echo "key:$key value:$value
";
}

 

结果:

key:a value:1
key:0 value:2
key:b value:3
key:1 value:4
key:2 value:5

这样就很明了,只有在用户没有定义键的时候 php 才会自动使用从0开始的数字作为键

 

5、php 中的数组是有指针的,可以对数组进行向前向后操作



$arr = array("a" => 1,3,"b" => 2);
//创建完数组后默认指针指在第一个元素
echo current($arr)."
";
//前进一个位置
echo next($arr)."
";
//整理的默认原则是从小到大
sort($arr);
//整理完后数组指针又停在第一个元素
echo current($arr)."
";
echo next($arr)."
";
//后退一个位置
echo prev($arr)."
";


输出:

1
3
1
2
1

你可能感兴趣的:(PHP,实例)