1. array() 是结构
2. key,如果是整型,则严格按照整型,如"08";浮点转换整型;
3. 访问不存在的key,返回null
4. php4.3之后,当前最大key为负数,下一个key值为0;true/false为key将会转换为1/0;null作为key将会转换为空字符串;空字符串可以作为key;array和obj不能作为key,key只能是string和整型。当前最大整型key可以不存在当前数组,如用了unset,除非你使用array_values函数
5. $arr[key],尽量使用引号;没有引号的情况下,会现查看是否有这么一个变量/常量,如果没有就直接把这个作为变量,同时作为值使用
6. "$foo[bar]" 这个是正确的
7. integer, float, string, boolean and resource 转换为array将会变成index为0,值为转换的标量数组。
obj转换为array,属性转换为数组,属性名字为数组的key,其中:整型属性不会转换,私有属性会在前面加上类的名字,受保护属性会在前面就爱上*,所有加在前面的两边都有一个空字符(/0);null转换数组将是一个空数组
8. 数组赋值是值的拷贝,可以使用引用来赋值(非值拷贝)
foreach ($colors as &$color) {
$color = strtoupper($color);
}
9. $a[] = &$a;
print_r($a);
10
$arr["1"] and $arr[1] refer to the same element.
$arr["-1"] and $arr[-1] refer to different elements.
11 The surprise is that element 0 is deleted, not element 1.
$x[1] = 'foo';
$x[0] = 'bar';
echo "Original array:/n";
var_dump($x);
array_pop($x);
echo "Array after popping last element:/n";
var_dump($x);
12 php 5.3之前,后面的覆盖之前的;5.3之后忽略后面的
<?php $a = array ('foo' => 1, 'bar' => 2, 'foo' => 3); ?>
13 也可以使用{}替代[]
14 It is true that "array assignment always involves value copying", but the copy is a "lazy copy"
15.