我們知道PHP數組的索引有這么幾種情況
1.默認索引:
即數字索引,這是PHP數組的默認索引形式,默認的數字索引從零開始,
當然數字索引除了默認以外,還可以直接指定,例如:
$arr = array(
4 => '我是指定的整型的四',
'4' => '我是指定的字符型的四'
);
echo "{$arr[4]}
";
echo "{$arr['4']}
";
咦?還可以這樣整嗎?當然可以,不過兩個輸出的結果是一樣的。為什么?
因為PHP是一門弱類型的語言,尤其是在數字的應用上,經常是整型數字和字符型的數字相互轉換的,當然這種轉換一般是PHP自動進行的。就像上面的例子一樣。你可能要問,為什么兩個打印出的都是第二個元素值呢?
注意:PHP重復用相同名稱命名變量會造成覆蓋,例如:
$a = 3;
$a = 5;
echo $a;
這個時候得到的結果是五,這里的數組索引也會造成相同的效果。我們再來看下面的例子:
$arr = array('a' => 'a');
$arr = array('ab' => 'ab');
print_r($arr);
你會發現執行的結果是這樣的 Array ( [ab] => ab ),為什么呢?
因為我們定義一個數組,實際上是將后面的數組賦給前面的變量,也就是說前面的變量是一個標識符。這個標識符用來指向數組在內存當中的實際地址,所以說當我們再次用相同的變量名標識一個數組時,這個變量就指向了新定義的這個數組在內存中的實際地址了。所以上面的情況發生了。我們在向數組追加元素或修改數組的時候一定不要像上面這樣來使用。你可以這樣
$arr[] = 'f';
$arr[] = 'x';
$arr['c'] = '1234';
當然,還有 array_push() 什么的,不過調用函數的執行效率不如前者。
下面,讓我們來揭開PHP數組能不能使用中文作為索引的問題----
$as = array(
'我' => '非著名不專業操蛋扯蛋拽蛋玩蛋滾蛋煮蛋炒蛋煎蛋下蛋之《PHP淫牌講師》
',
'..' => '你
',
',,' => '絕
',
'``' => '對
',
'??' => '木
',
'!!' => '有
',
'==' => '見
',
'--' => '過
',
'++' => '如
',
'**' => '此
',
'//' => '操
',
'##' => '蛋
',
'$$' => '的
',
'@@' => 'PHP
',
'&&' => '數
',
'^^' => '組
',
'%%' => '!??!
'
);
print_r($as);
你的眼睛沒有看花,我的確就是這么寫的。
恩,我講課的風格也基本上就是這樣。
當然,你可以覺得我很無聊很操蛋,不過,我的學生倒是蠻喜歡我的......
唉,人太拉轟也是一種罪過啊,男毋屙米豆腐......
執行一下上面的代碼,你就知道了。
Copyright@ 2011-2016 版權所有:大連千億科技有限公司 遼ICP備11013762-3號 google網站地圖 百度網站地圖 網站地圖
公司地址:大連市沙河口區中山路692號辰熙星海國際2317 客服電話:0411-39943997 QQ:2088827823 37482752
法律聲明:未經許可,任何模仿本站模板、轉載本站內容等行為者,本站保留追究其法律責任的權利! 隱私權政策聲明