陣列的下標

2022-08-29 22:24:30 字數 1115 閱讀 1976

<?php

//陣列的下標應該怎麼寫????

// 把notice級別的錯誤資訊遮蔽掉

// 在開必專案前會專門講錯誤報告設定

error_reporting(e_all & ~e_notice

); $arr = array(1=>'中',2=>'華','name'=>'張三','area'=>'衡水');

echo

$arr[1],$arr['1'],$arr["1"],'

';echo

$arr['name'],$arr["name"],$arr[name],'

';//

1: 對於數字的索引值,不必加單雙引號

// 因為加了單雙引號,比如"1",則需要把"1"轉成整型1,來尋找該單元.

// 影響了效率.

// 第2個問題: 字串型的下標,要不要加單雙引號????

echo '沒問題---',$arr[name],'

';define('name','dsafdsafdsaf');

error_reporting(e_all

);echo '有問題----',$arr[name],'

'; //

張三沒列印出來!!!

/*notice: undefined index: dsafdsafdsaf in d:\www\1009\10.php on line 29

這說明 $arr[name] -->引用的是 $arr[dsafdsafdsaf] 單元,沒有這個單元,所以報notice

為什麼引用$arr[dsafdsafdsaf] 這個單元?

答:因為name沒有加單雙引號,理解成常量,並且按常量值來做下標.

如果沒有該常量,再次把name當成字串的下標來處理.

不加單雙引號,流程上,先理解成常量,如無,再當成字串,效率必然低.

*///

第3個問題,加單引還是加雙引?

/*在字串學習的時候,單引號的解析速度遠比雙引號快.

因此,優先加 單引號.

*//*

**總結:

數字型別的索引,不必加引號

字串型別索引必加,而且優先加單引號

***/

?>

陣列下標越界

原理 因為c語言不會檢測陣列下標,所以如果我們給陣列乙個超出它大小的下標,就會照成陣列越界。如果是想陣列中寫入資料的話,就會造成資料寫入到不屬於陣列的地方,或者說如果讀取資料的話,就會讀取到別的地方的資料。因為陣列位址是自低往高增長,而棧的位址是自高向下降低,所以如果我們將陣列下標根據棧內的空間的分...

巧用陣列下標

巧用陣列下標 陣列的下標是乙個隱含的很有用的陣列,特別是在統計一些數字,或者判斷一些整型數是否出現過的時候。例如,給你一串字母,讓你判斷這些字母出現的次數時,我們就可以把這些字母作為下標,在遍歷的時候,如果字母a遍歷到,則arr a 就可以加1了,即 arr a 通過這種巧用下標的方法,我們不需要逐...

陣列下標訪問

q int a 2 3 則a 1 0 和 a 1 1 的值分別是 a a 4 5 b 4 3 c 3 5 d 3 4 a 假設給乙個一維陣列 int a 5 首先要明白 a 和 a 的意思,他們位址值一樣 可以把a理解江蘇的省會南京市 即江蘇省城市排名中的第乙個,對應陣列中的第乙個元素 a理解為江蘇...