PHP易混淆知識(shí)點(diǎn)大分享-連載4...?

  1. 數(shù)組的概念是什么?數(shù)組根據(jù)索引分為哪兩種,如何區(qū)分?數(shù)組的賦值方式有哪兩種?
數(shù)組是一個(gè)可以存儲(chǔ)一組或一系列數(shù)值的變量(復(fù)合型變量)        
索引數(shù)組(索引值為數(shù)字,以0開(kāi)始)和關(guān)聯(lián)數(shù)組(以字符串作為索引值)        
數(shù)組的賦值方式有哪兩種?        
數(shù)組的聲明方式主要有兩種。        
1.通過(guò)array()函數(shù)聲明數(shù)組;可以通過(guò)key=>value的方式分別定義索引和值,也可以不定義數(shù)組的索引下標(biāo),只給出數(shù)組的元素值。       
2.直接為數(shù)組元素賦值,不需要調(diào)用array()函數(shù)。
例如:        $arr[0] = 1;     $arr[1] = 2;        
特別注意:        
數(shù)組的下標(biāo)如果是等價(jià)于整數(shù)的字符串值(但不能以0開(kāi)頭),則會(huì)被當(dāng)作整數(shù)對(duì)待。        
例如: $array[3] 與  $array['3'] 引用的是相同的一個(gè)元素,而 $array['03'] 引用的則就是另外的一個(gè)元素了。

32.數(shù)組如何遍歷?

①for循環(huán)        
②foreach循環(huán)  ,這是最常用的遍歷方式。用法如下:foreach($arr as $key=>$value){}       
 ③list each 和while 配合起來(lái)循環(huán)
  1. foeach數(shù)組的時(shí)候指針是如何指向的?list()/each()/while()循環(huán)數(shù)組的時(shí)候指針如何指向的呢?
當(dāng)foreach開(kāi)始執(zhí)行的時(shí)候,數(shù)組內(nèi)部的指針會(huì)自動(dòng)指向第一個(gè)單元。因?yàn)閒oreach所操作的是指定數(shù)組的拷貝,而不是該數(shù)組本身。而each()一個(gè)數(shù)組后,數(shù)組指針將停留在數(shù)組中的下一個(gè)單元或者碰到數(shù)組結(jié)尾時(shí)停留在最后一個(gè)單元。如果要再次使用each()遍歷數(shù)組,必須要使用reset().        reset()將數(shù)組的內(nèi)部指針倒回到第一個(gè)單元并返回第一個(gè)數(shù)組單元的值。
  1. 如何計(jì)算數(shù)組長(zhǎng)度(或者說(shuō)計(jì)算數(shù)組中所有元素的個(gè)數(shù))?字符串怎么取長(zhǎng)度?
count() -- 計(jì)算數(shù)組中的元素個(gè)數(shù)。        可以使用count(數(shù)組名)或者count(數(shù)組名,1),如果有第二個(gè)參數(shù),并且是數(shù)字1,則表示遞歸統(tǒng)計(jì)數(shù)組元素的個(gè)數(shù)。如果第二個(gè)參數(shù)是數(shù)字0,則等同于只有一個(gè)參數(shù)的count()函數(shù)。       
 sizeof() -- count() 的別名(count — 計(jì)算數(shù)組中的單元數(shù)目或?qū)ο笾械膶傩詡€(gè)數(shù))字符串:
strlen()— 獲取字符串長(zhǎng)度       
 mb_strlen()— Get string length
  1. 數(shù)組中相關(guān)的常用函數(shù)有哪些?
1) count --(sizeof別名)— 計(jì)算數(shù)組中的單元數(shù)目或?qū)ο笾械膶傩詡€(gè)數(shù)                   例如:int count ( mixed $var [, int $mode ] )  $var 通常都是數(shù)組類型,任何其它類型都只有一個(gè)單元。  $mode 默認(rèn)值為0. 1為開(kāi)啟遞歸地對(duì)數(shù)組計(jì)數(shù)        
2) in_array ( mixed $needle , array $haystack [, bool $strict ] ) — 檢查數(shù)組中是否存在某個(gè)值。如果 needle 是字符串,則比較是區(qū)分大小寫的。如果第三個(gè)參數(shù) strict 的值為 TRUE 則 in_array() 函數(shù)還會(huì)檢查 needle 的類型是否和 haystack 中的相同。        
3) array_merge(array $array1 [, array $array2 [, array $... ]] ) 將一個(gè)或多個(gè)數(shù)組的單元合并起來(lái),一個(gè)數(shù)組中的值附加在前一個(gè)數(shù)組的后面。返回作為結(jié)果的數(shù)組。                 特別注意:如果輸入的數(shù)組中有相同的字符串鍵名,則該鍵名后面的值將覆蓋前一個(gè)值。然而,如果數(shù)組包含數(shù)字鍵名,后面的值將不會(huì)覆蓋原來(lái)的值,而是附加到后面. 如果只給了一個(gè)數(shù)組并且該數(shù)組是數(shù)字索引的,則鍵名會(huì)以連續(xù)方式重新索引!        
4) 數(shù)組與字符串之間的轉(zhuǎn)換                (1)explode ( string $separator , string $string [, int $limit ] )  使用一個(gè)分隔字符來(lái)分隔一個(gè)字符串。                (2)implode ( string $glue , array $arr )  使用一個(gè)連接符將數(shù)組中的每個(gè)單元連接為一個(gè)字符串。join 為 implode 的別名        
5) sort(array &$array [, int $sort_flags ]) — 對(duì)數(shù)組按照值排序,當(dāng)本函數(shù)結(jié)束時(shí)數(shù)組單元將被從最低到最高重新安排。
  1. 數(shù)組合并函數(shù)array_merge()和數(shù)組加法運(yùn)算$arr + $arr2 的區(qū)別是什么?
array_merge()->使用array_merge(),如果是關(guān)聯(lián)數(shù)組合并,如果數(shù)組的鍵名相同,那么后面的值將覆蓋前者;如果是數(shù)字索引數(shù)組合并,則不覆蓋,而是后者附加到前者后面。
"+"->使用數(shù)組加法運(yùn)算,與array_merge()不同,加法運(yùn)算不管是關(guān)聯(lián)數(shù)組還是數(shù)字索引數(shù)組,都是將相同鍵名的的值舍棄,也就是只保留首次出現(xiàn)該鍵名的元素,后來(lái)的具有相同鍵名的元素都不會(huì)被加進(jìn)來(lái)。
  1. 字符串定義的時(shí)候單引號(hào)和雙引號(hào)有什么區(qū)別?
單引號(hào)加載速度比雙引號(hào)加載速度快.
  1. echo(),print(),print_r()的區(qū)別?
(1)echo 是語(yǔ)法,Output one or more strings,沒(méi)有返回值;       
 (2)print 是函數(shù),不能輸出數(shù)組和對(duì)象,Output a string,print有返回值;       
 (3)print_r 是函數(shù),可以輸出數(shù)組。print_r是個(gè)比較有意思的函數(shù),可以輸出stirng、int、float、array、object等,輸出array時(shí)會(huì)用結(jié)構(gòu)表示,print_r輸出成功時(shí)返回true;而且print_r可以通過(guò)print_r($str,true)來(lái),使print_r不輸出而返回print_r處理后的值。此外,對(duì)于echo和print,基本以使用echo居多,因?yàn)槠湫时萷rint要高。
  1. 按照功能分類說(shuō)說(shuō)都有哪些字符串處理函數(shù)?這些函數(shù)的作用是什么?
A. 字符串輸出函數(shù)        
(1)echo $a,$b,$c......;  是一個(gè)語(yǔ)言結(jié)構(gòu),而不是一個(gè)真正的函數(shù)。 
 (2)print($a)    本函數(shù)輸出字符串。若成功則返回 1,失敗返回 0        
(3)print_r($a)       
 (4)var_dump($a); 能輸出類型、長(zhǎng)度、值        
B. 去除字符串首尾空格的函數(shù): trim  ltrim  rtrim(別名:chop)   使用第二個(gè)參數(shù),還可以去除指定的字符。        
C. 轉(zhuǎn)義字符串函數(shù):addslashes()        
D. 獲取字符串長(zhǎng)度的函數(shù):strlen()        
E. 截取字符串長(zhǎng)度的的函數(shù):substr()        
F. 檢索字符串函數(shù): strstr() , strpos()        
G. 替換字符串函數(shù):str_replace()
  1. 請(qǐng)給出以下問(wèn)題的正確答案?
1).$arr = array('james', 'tom', 'symfony');請(qǐng)將$arr數(shù)組的值用’,’分割并合并成字符串輸出?                
echo implode(‘,’,$arr);        
2).$str = ‘jack,james,tom,symfony’; 請(qǐng)將$str用’,’分割,并把分割后的值放到$arr數(shù)組中?                
$arr = explode(‘,’,$str);       
 3).$arr = array(3,7,2,1,’d’,’abc’);        
請(qǐng)將$arr按照從大到小的順序排序,并保持其鍵值不變?                arsort($arr); print_r($arr);        
4).$mail = “[gaofei@163.com](mailto:gaofei@163.com)”;        
請(qǐng)將此郵箱的域(163.com)取出來(lái)并打印,看最多能寫出幾種方法?                
echo strstr($mail,'163');                
echo substr($mail,7);                
$arr = explode("@",$mail); echo $arr[1];        
5). 如果有一個(gè)字符串,該字符串是“123,234,345,”。請(qǐng)問(wèn)如何切割掉這個(gè)字符串最后一個(gè)逗號(hào)?        
6). 獲取隨機(jī)數(shù)的函數(shù)有哪幾個(gè)?mt_rand() 和 rand()哪個(gè)執(zhí)行速度快?

轉(zhuǎn)自:http://bbs.itheima.com/forum.php?mod=viewthread&tid=301780&extra=page%3D1

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • PHP常用函數(shù)大全 usleep() 函數(shù)延遲代碼執(zhí)行若干微秒。 unpack() 函數(shù)從二進(jìn)制字符串對(duì)數(shù)據(jù)進(jìn)行解...
    上街買菜丶迷倒老太閱讀 1,381評(píng)論 0 20
  • php usleep() 函數(shù)延遲代碼執(zhí)行若干微秒。 unpack() 函數(shù)從二進(jìn)制字符串對(duì)數(shù)據(jù)進(jìn)行解包。 uni...
    思?jí)鬚HP閱讀 2,002評(píng)論 1 24
  • 一、數(shù)組 1、數(shù)組定義 數(shù)組就是一個(gè)鍵值對(duì)組成的語(yǔ)言結(jié)構(gòu),鍵類似于酒店的房間號(hào),值類似于酒店房間里存儲(chǔ)的東西。 $...
    空谷悠閱讀 814評(píng)論 4 11
  • R 別獨(dú)自用餐 社交多樣性 I 如何通過(guò)網(wǎng)絡(luò)拓展多樣性的社交關(guān)系,突破個(gè)人僵化模式,助力成長(zhǎng)。 世界是無(wú)限...
    若昀若含閱讀 258評(píng)論 0 0
  • 你知道那種思念到極致是什么感覺(jué)嗎。一晚上醒來(lái)七八次看手機(jī)信息。就是那種可怕的朦朦朧朧的意識(shí),夢(mèng)里都?jí)舻侥愫孟癜l(fā)了信...
    言亭子閱讀 215評(píng)論 0 0