日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > php >内容正文

php

php面试题之三——PHP语言基础(基础部分)

發(fā)布時(shí)間:2023/12/20 php 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php面试题之三——PHP语言基础(基础部分) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. strlen( )與 mb_strlen( )的作用分別是什么(新浪網(wǎng)技術(shù)部)

strlen和mb_strlen都是用于獲取字符串長(zhǎng)度。
strlen只針對(duì)單字節(jié)編碼字符,也就是說(shuō)它計(jì)算的是字符串的總字節(jié)數(shù)。如果是多字節(jié)編碼,如 gbk 和 utf-8,使用 strlen 得到是該字符的總字節(jié)數(shù);
可以使用mb_strlen獲取其字符個(gè)數(shù),使用mb_strlen 要注意兩點(diǎn),一是要開啟 mbstring 擴(kuò)展,二是要指定字符集。

總結(jié):

  • strlen函數(shù)不管是字符串是單字節(jié)編碼還是多字節(jié)編碼,函數(shù)返回的結(jié)果都是字符串的總字節(jié)數(shù)。
  • mb_strlen函數(shù)當(dāng)字符串是單字節(jié)編碼時(shí),函數(shù)返回的結(jié)果是字符串的總字節(jié)數(shù)。當(dāng)字符串是多字節(jié)編碼時(shí),函數(shù)返回的結(jié)果是字符串的個(gè)數(shù)。
    mb_strlen函數(shù)在沒(méi)有指定字符編碼時(shí),表示使用默認(rèn)字符編碼,即單字節(jié)編碼,函數(shù)返回的是字符串的總字節(jié)數(shù)。
  • PHP默認(rèn)是單字節(jié)編碼(內(nèi)部字符編碼),多字節(jié)編碼方式有g(shù)bk、utf-8等。

示例:

<?php/*strlen( )與 mb_strlen( )的作用分別是什么(新浪網(wǎng)技術(shù)部)*/header('Content-Type:text/html;charset=utf-8'); // (1)英文字符串 $str1 ="duang~"; echo strlen($str1);//總字節(jié)數(shù)為6,內(nèi)部字符編碼,單字節(jié)編碼 echo "<br />"; echo mb_strlen($str1);//總字節(jié)數(shù)為6,內(nèi)部字符編碼 echo "<br />"; echo mb_strlen($str1,'utf-8');//總字節(jié)數(shù)或字符長(zhǎng)度為6,指定字符編碼(utf-8),多字節(jié)編碼 echo "<hr />"; // (2)中文字符串 $str2 = "你是我的小蘋果"; echo strlen($str2);//總字節(jié)數(shù)為21,內(nèi)部字符編碼,單字節(jié)編碼 echo "<br />"; echo mb_strlen($str2);//總字節(jié)數(shù)為21,內(nèi)部字符編碼 echo "<br />"; echo mb_strlen($str2,'utf-8');//字符長(zhǎng)度為7,指定字符編碼(utf-8),多字節(jié)編碼 ?>
相關(guān)題目 1:實(shí)現(xiàn)中文字串截取無(wú)亂碼的方法。

方法一,使用 php 內(nèi)置函數(shù) mb_substr()
方法二,自定義函數(shù),以 utf-8 為例,如下:

<?php/*相關(guān)題目 1:實(shí)現(xiàn)中文字串截取無(wú)亂碼的方法。*/header('Content-Type:text/html;charset=utf-8'); //=================方法一======================= $str = "你是我的溫暖陽(yáng)光"; echo mb_substr($str, 2,4,'utf-8');//輸出 我的溫暖 // ================方法二======================= /** * utf8編碼字符串截取無(wú)亂碼 * @param $str string 要處理的字符串 * @param $start int 從哪個(gè)位置開始截取 * @param $length int 要截取字符的個(gè)數(shù) * @return string 截取后得到的字符串 */ function substr_utf8($str,$start,$length = null) { $sep = ""; $arr = array_slice(preg_split("//u", $str,-1,PREG_SPLIT_NO_EMPTY), $start,$length); return join($sep,$arr); } // 示例 $str = "你是我的溫暖陽(yáng)光"; echo substr_utf8($str,2,4);//輸出 我的溫暖 ?>
相關(guān)題目2:如何求解字符串“中國(guó)2北333京”的字符數(shù)(一個(gè)中文一個(gè)字符),并找到第四個(gè)字符“北”

方法一,使用php內(nèi)置函數(shù),確保配置中已打開mbstring擴(kuò)展
方法二,自定義函數(shù)實(shí)現(xiàn)求其長(zhǎng)度,截取使用上面定義的substr_utf8

<?php/*相關(guān)題目 2:如何求解字符串“中國(guó)2北333京”的字符數(shù)(一個(gè)中文一個(gè)字符),并找到第四個(gè)字符“北”*/header('Content-Type:text/html;charset=utf-8'); //=================方法一======================= $str = "中國(guó)2北333京"; echo mb_strlen($str,'utf-8');//輸出字符數(shù) 8 echo mb_substr($str, 3,1,'utf-8');//輸出 北 // ================方法二======================= /** * utf8編碼字符串截取無(wú)亂碼 * @param $str string 要處理的字符串 * @param $start int 從哪個(gè)位置開始截取 * @param $length int 要截取字符的個(gè)數(shù) * @return string 截取后得到的字符串 */ function substr_utf8($str,$start,$length = null) { $sep = ""; $arr = array_slice(preg_split("//u", $str,-1,PREG_SPLIT_NO_EMPTY), $start,$length); return join($sep,$arr); } /** * utf8編碼字符串計(jì)算長(zhǎng)度 * @param $str string 要處理的字符串 * @return int 字符串的長(zhǎng)度或字符個(gè)數(shù) */ function strlen_utf8($str) { return count(preg_split("//u", $str,-1,PREG_SPLIT_NO_EMPTY)); } // 示例 $str = "中國(guó)2北333京"; echo strlen_utf8($str);//輸出字符數(shù) 8 echo substr_utf8($str,3,1);//輸出 北 ?>
2. 下列哪個(gè)函數(shù)是用正則表達(dá)式將字符串分割到數(shù)組中 ( )

A. split
B. implode
C. explode
D. join
答案:A

3. 寫出下列程序的輸出結(jié)果(新浪網(wǎng)技術(shù)部)
<?php/*寫出下列程序的輸出結(jié)果(新浪網(wǎng)技術(shù)部)*/$x = 87; $y = ($x % 7) * 16; $z = $x > $y ? 1 : 0; echo $z; ?>

答案:1

4. 寫出下列幾個(gè)預(yù)定義全局變量的作用 (新浪網(wǎng)技術(shù)部)
$_SERVER['DOCUMENT_ROOT']//當(dāng)前運(yùn)行腳本所在的文檔根目錄 $_SERVER['HTTP_HOST ']//當(dāng)前請(qǐng)求的 Host: 頭部的內(nèi)容 $_SERVER['REMOTE_ADDR']//正在瀏覽當(dāng)前頁(yè)面用戶的 IP 地址 $_SERVER['HTTP_REFERER']//鏈接到當(dāng)前頁(yè)面的前一頁(yè)面的 URL 地址 $_SERVER['SERVER_NAME']//當(dāng)前運(yùn)行腳本所在服務(wù)器主機(jī)的名稱 $_FILES //包含有所有上傳的文件信息 S_FILES['userfile']['name']//客戶端機(jī)器文件的原名稱 $_FILES['userfile']['type']//文件 MIME 類型,如果瀏覽器提供此信息的話,如“image/gif”。 $_FILES['userfile']['size']//已上傳文件的大小,單位為字節(jié) $_FILES['userfile']['tmp_name']//文件被上傳后在服務(wù)端儲(chǔ)存的臨時(shí)文件名 $_FILES['userfile']['error']//和該文件上傳相關(guān)的錯(cuò)誤代碼
5. include 和 require 都能把另外一個(gè)文件包含到當(dāng)前文件中,他們有什么區(qū)別?Include 和include_once 又有什么區(qū)別?(新浪網(wǎng)技術(shù)部)

二者區(qū)別只有一個(gè),那就是對(duì)包含文件的需求程度。include 就是包含,如果被包含的文件不存在的話,那么則會(huì)提示一個(gè)錯(cuò)誤,但是程序會(huì)繼續(xù)執(zhí)行下去。而 require 意思是需要,如果被包含文件不存在或者無(wú)法打開的時(shí)候,則會(huì)提示錯(cuò)誤,并且會(huì)終止程序的執(zhí)行。
這兩種結(jié)構(gòu)除了在如何處理失敗之外完全一樣。
once 的意思是一次,那么 include_once 和 require_once 表示只包含一次,避免重復(fù)包含。

相關(guān)題目 1:What is the difference between include & include_once? include & require?(Yahoo)
相關(guān)題目 2:語(yǔ)句 include 和 require 都能把另外一個(gè)文件包含到當(dāng)前文件中,它們的區(qū)

別是_;為了避免多次包含同一文件,可以用語(yǔ)句_來(lái)代替它們。
在如何處理失敗時(shí),include()產(chǎn)生一個(gè)警告而require()則導(dǎo)致一個(gè)致命錯(cuò)誤;require_once()/include_once()

相關(guān)題目 3:What functions can you use to add library code to the currently running script?(Yahoo)

include、require

6. 用最少的代碼寫一個(gè)求 3 值最大值的函數(shù). (51.com 筆試題)
<?php/*6. 用最少的代碼寫一個(gè)求 3 值最大值的函數(shù). (51.com 筆試題)*/// 定義函數(shù) function maxnum($a,$b,$c) { return $a > $b ? ($a > $c ? $a : $c) : ($b > $c ? $b : $c); } // 調(diào)用實(shí)例 echo maxnum(24,15,8); ?>
7. 簡(jiǎn)述 POST 和 GET 傳輸?shù)淖畲笕萘糠謩e是多少? (51.com 筆試題)

POST 根據(jù)你 php.ini 文件配置(默認(rèn)是 8M)
GET 的話大小限制在 2KB

相關(guān)題目:表單中 get 與 post 提交方法的區(qū)別?

get 是發(fā)送請(qǐng)求 HTTP 協(xié)議通過(guò) url 參數(shù)傳遞進(jìn)行接收,而 post 是實(shí)體數(shù)據(jù),可以通過(guò)表單提交大量信息。

8. 有三個(gè) php 文件位于同一目錄下,內(nèi)容如下所示。使用瀏覽器訪問(wèn) c.php,請(qǐng)問(wèn)是否存在問(wèn)題。如果存在問(wèn)題,請(qǐng)指出修正方法并寫出瀏覽器查看效果 ,如果不存在問(wèn)題,請(qǐng)寫出瀏覽器查看效果(酷訊 PHP 工程師筆試題)

A.php:

<?phpfunction fa(){ echo "in Function A\n"; } ?>

B.php:

<?phpinclude 'a.php'; function fb() { fa(); echo "in Function B\n"; } ?>

C.php:

<?phpinclude 'a.php'; include 'b.php'; fa(); fb(); ?>

答案:存在問(wèn)題,a.php 被包含了兩次,導(dǎo)致 fa()函數(shù)重復(fù)定義,使用 include_once 避免重復(fù)包含。

9. echo(),print(),print_r()的區(qū)別?(新浪)

echo, print是PHP語(yǔ)句print_r是函數(shù),語(yǔ)句沒(méi)有返回值,函數(shù)可以有返回值(即便沒(méi)有用)
print只能打印出簡(jiǎn)單類型變量的值(如int,string)
print_r可以打印出復(fù)雜類型變量的值(如數(shù)組,對(duì)象)

echo -- 輸出一個(gè)或者多個(gè)字符串
print --輸出一個(gè)字符串
print_r -- 打印關(guān)于變量的易于理解的信息。

在實(shí)際使用中, print 和 echo 兩者的功能幾乎是完全一樣。
可以這么說(shuō),凡是有一個(gè)可以使用的地方,另一個(gè)也可以使用。但是,兩者之間也還是一個(gè)非常重要的區(qū)別:
在 echo 函數(shù)中,可以同時(shí)輸出多個(gè)字符串,而在 print 函數(shù)中則只可以同時(shí)輸出一個(gè)字符串。同時(shí),echo函數(shù)并不需要圓括號(hào),所以echo函數(shù)更像是語(yǔ)句而不像是函數(shù)。
echo 和 print 都不是函數(shù),而是語(yǔ)言結(jié)構(gòu),所以圓括號(hào)都不是必需的。他們的區(qū)別在于:

(1) echo可以輸出多個(gè)字符串,像下面這樣:
echo 'a','b','c';
如果你非要加上圓括號(hào),注意寫成echo ('a','b','c');是錯(cuò)誤的,應(yīng)該寫成:
echo ('a'),('b'),('c');
它沒(méi)有像函數(shù)的行為,所以不能用于函數(shù)的上下文

(2) print只能輸出一個(gè)字符串,它可以表現(xiàn)得像一個(gè)函數(shù),比如你可以如下使用:
$ret = print 'Hello World';
(有返回值所以能夠用在更復(fù)雜的表達(dá)式中,可以判斷是否輸出成功等表達(dá)式)所以它能用在更復(fù)雜的表達(dá)式中。

另外,echo的效率相對(duì)比較快~

如下代碼:

<?php$a='hello ';$b='php world!'; echo $a,$b.'<br />';//echo 可以用逗號(hào)分隔字符串變量來(lái)顯示 print $a.$b.'<br />';//而print不能使用逗號(hào),只能用點(diǎn)號(hào)分隔 print $a,$b.'<br />';//使用逗號(hào)時(shí)報(bào)錯(cuò)。 ?>

說(shuō)明:

  • ,是 echo 本身支持的一種語(yǔ)法,而.則是字符串連接操作符,使用,的效率要高一些。(少了連接運(yùn)算)
  • echo可以使用,來(lái)分隔字符串變量,也可以使用,來(lái)分隔字符串變量;print只能使用.來(lái)分隔字符串變量。
  • echo效率比print高
  • 總結(jié):
    echo命令和print命令相同,沒(méi)有區(qū)別
    echo()和print()有區(qū)別:
    echo()沒(méi)有返回值,與echo命令相同
    print()有返回值,總是返回1

    補(bǔ)充:
    printf()和sprintf()類似,均為格式化輸出,不同的是前者輸出到標(biāo)準(zhǔn)輸出,后者輸出到變量

    相關(guān)題目:What is the difference between "print()" and "echo( )"? (騰訊)

    answer: print is a function,echo is a language construct

    10. 用 PHP 打印出前一天的時(shí)間格式是 2006-5-10 22:21:21。
    <?php/*用 PHP 打印出前一天的時(shí)間格式是 2006-5-10 22:21:21。*/// ================方法一================== echo date("Y-m-d H:i:s",time() - 3600*24); echo "<br />"; // ================方法二================== echo date("Y-m-d H:i:s",strtotime("-1 day")); echo "<br />"; // 將表單中提交的時(shí)間字符串"2015-6-23"轉(zhuǎn)成時(shí)間戳 $date = strtotime("2015-6-23"); echo $date; ?>

    說(shuō)明:

    • 使用strtotime可以將任何字符串的時(shí)間表示(now,seconds,day,week等)轉(zhuǎn)換成時(shí)間戳,僅針對(duì)英文。
    • 在實(shí)際開發(fā)的時(shí)候,strtotime非常有用,因?yàn)閷?duì)于表單來(lái)說(shuō),提交的數(shù)據(jù)都是字符串。比如,“2013-4-27”需要將其轉(zhuǎn)換成時(shí)間戳然后存到數(shù)據(jù)庫(kù)中。
    相關(guān)題目:求兩個(gè)日期的差數(shù),例如 2009-3-1 ~ 2009-4-4 的日期差數(shù)

    (strtotime("2009-4-4")-strtotime("2009-3-1"))/3600*24

    11. 不使用第三個(gè)變量交換兩個(gè)變量的值
    <?php/*不使用第三個(gè)變量交換兩個(gè)變量的值*/// ================方法一================== $a = "PHP"; $b = "MySQL"; echo '$a='.$a.'<br />'; echo '$b='.$b.'<br />'; list($a,$b) = array($b,$a); echo '$a='.$a.'<br />'; echo '$b='.$b.'<br />'; echo "<hr />"; // ================方法二================== $a = "PHP"; $b = "MySQL"; echo '$a='.$a.'<br />'; echo '$b='.$b.'<br />'; $a = $a.'&'.$b;//使用&連接兩個(gè)字符串 // 根據(jù)&進(jìn)行字符串分割 $b = explode('&', $a); $a = $b[1]; $b = $b[0]; echo '$a='.$a.'<br />'; echo '$b='.$b.'<br />'; ?>
  • 請(qǐng)說(shuō)明 php 中傳值與傳引用的區(qū)別。什么時(shí)候傳值什么時(shí)候傳引用?
    變量默認(rèn)總是傳值賦值。
    那也就是說(shuō),當(dāng)將一個(gè)表達(dá)式的值賦予一個(gè)變量時(shí),整個(gè)原始表達(dá)式的值被賦值到目標(biāo)變量。這意味著,例如,當(dāng)一個(gè)變量的值賦予另外一個(gè)變量時(shí),改變其中一個(gè)變量的值,將不會(huì)影響到另外一個(gè)變量。
    PHP 也提供了另外一種方式給變量賦值:引用賦值。
    這意味著新的變量簡(jiǎn)單的引用(換言之,“成為其別名” 或者 “指向”)了原始變量。改動(dòng)新的變量將影響到原始變量,反之亦然。使用引用賦值,簡(jiǎn)單地將一個(gè)&符號(hào)加到將要賦值的變量前(源變量)。
    對(duì)象默認(rèn)是傳引用。
    對(duì)于較大的數(shù)據(jù),傳引用比較好,這樣可以節(jié)省內(nèi)存的開銷。
  • 相關(guān)題目 1:What would the following code print to the browser? Why?
    <?php$num = 10;function multipy($num){ $num = $num +10; } multipy($num); echo $num; ?>

    輸出 10

    相關(guān)題目 2:What is the difference between a reference and a regular variable? How do you pass by reference & why would you want to?(Yahoo)

    reference 傳送的是變量的地址而非它的值,所以在函數(shù)中改變一個(gè)變量的值時(shí),整個(gè)應(yīng)用都見(jiàn)到這個(gè)變量的新值。
    一個(gè) regular variable 傳送給函數(shù)的是它的值,當(dāng)函數(shù)改變這個(gè)變量的值時(shí),只有這個(gè)函數(shù)才見(jiàn)到新值,應(yīng)用的其他部分仍然見(jiàn)到舊值。

    13. 將 1234567890 轉(zhuǎn)換成 1,234,567,890 每 3 ���用逗號(hào)隔開的形式。(百度)
    <?php$str ='1234567890';function str($str) { // 反轉(zhuǎn)字符串,得到0987654321 $str = strrev($str); // 使用逗號(hào)分割字符串,得到098,765,432,1, $str = chunk_split($str,3,','); // 再次反轉(zhuǎn)字符串,得到,1,234,567,890 $str = strrev($str); // 去掉左邊的",",得到1,234,567,890 $str = ltrim($str,','); return $str; } echo str($str); ?>
    相關(guān)題目 1:如何實(shí)現(xiàn)字符串翻轉(zhuǎn)?

    strrev(),不過(guò)這種方法都不能解決中文字符串翻轉(zhuǎn)的問(wèn)題,會(huì)出錯(cuò)的。

    <?phpheader("Content-Type:text/html;charset=utf-8");/** * 反轉(zhuǎn)utf8編碼的中文字符串 * @param string $str * @return string */ function strrev_utf8($str) { return join("",array_reverse(preg_split("//u", $str))); } // 實(shí)例 $str = "悄悄是別離的笙簫"; echo strrev_utf8($str); ?>
    相關(guān)題目 2:假設(shè)現(xiàn)在有一個(gè)字符串 www.baidu.com 如何使用 PHP 對(duì)它進(jìn)行操作使字符串以 moc.udiab.輸出? (億郵)
    <?php$str = "www.baidu.com";echo strrev(str_replace('www','',$str)); ?>
    14. 用 PHP 寫出顯示客戶端 IP 與服務(wù)器 IP 的代碼。

    客戶端 IP:$_SERVER["REMOTE_ADDR"]
    服務(wù)器端 IP:$_SERVER["SERVER_ADDR"]

    15. 簡(jiǎn)述如何得到當(dāng)前執(zhí)行腳本路徑,包括所得到參數(shù)。

    獲取當(dāng)前執(zhí)行腳本路徑使用$_SERVER["SCRIPT_FILENAME"]或__FILE__
    獲取參數(shù),使用$_SERVER["QUERY_STRING"]

    16. What is the difference between foo() & @foo()?(Yahoo)

    foo() 會(huì)執(zhí)行這個(gè)函式,任何解譯錯(cuò)誤、語(yǔ)法錯(cuò)誤、執(zhí)行錯(cuò)誤都會(huì)在頁(yè)面上顯示出來(lái)。
    @foo() 在執(zhí)行這個(gè)函式時(shí),會(huì)隱藏所有上述的錯(cuò)誤訊息。
    很多應(yīng)用程序都使用 @mysql_connect() 和 @mysql_query 來(lái)隱藏 mysql 的錯(cuò)誤信息,這是不對(duì)的,因?yàn)殄e(cuò)誤不該被隱藏,你必須妥善處理它們,可能的話解決它們。

    17. 下面哪個(gè)選項(xiàng)沒(méi)有將 john 添加到 users 數(shù)組中? ( 百度 )

    A.?users[]="john";B.arrayadd(users, "john");
    C. array_push($users, "john");
    D. $users ||= "john" ;
    答案:BD

    18. 檢測(cè)一個(gè)變量是否有設(shè)置的函數(shù)?是否為空的函數(shù)是?

    isset 檢測(cè)一個(gè)變量是否設(shè)置
    empty 檢測(cè)是否為空
    注意二者的區(qū)別,如果 變量 是非空或非零的值,則 empty() 返回 FALSE。換句話說(shuō),""、0、"0"、NULL、FALSE、array() 以及沒(méi)有任何屬性的對(duì)象都將被認(rèn)為是空的。
    isset是檢測(cè)變量是否設(shè)置/定義,empty是檢測(cè)已定義的變量的值是否為空。

    19. 在 PHP 中,當(dāng)前腳本的名稱(不包括路徑和查詢字符串)記錄在預(yù)定義變量______中;而鏈接到當(dāng)前頁(yè)面的的前一頁(yè)面 URL 記錄在預(yù)定義變量______中。

    當(dāng)前腳本名稱:$_SERVER["PHP_SELF"]或者?SERVER["SCRIPTNAME"]當(dāng)頁(yè)頁(yè)URL_SERVER["HTTP_REFERER"]。

    20. sort()、assort()、和 ksort() 有什么分別?它們分別在什么情況下使用?

    sort(),根據(jù)數(shù)組中元素的值,以英文字母順序排序,索引鍵會(huì)由 0 到 n-1 重新編號(hào)。主要是當(dāng)數(shù)組索引鍵的值無(wú)關(guān)緊要時(shí)用來(lái)把數(shù)組排序。
    assort(),PHP 沒(méi)有 assort() 函式,所以可能是 asort() 的筆誤。
    asort(),對(duì)數(shù)組進(jìn)行排序,數(shù)組的索引保持和單元的關(guān)聯(lián)。主要用于對(duì)那些單元順序很重要的結(jié)合數(shù)組進(jìn)行排序。
    ksort(),根據(jù)數(shù)組中索引鍵的值,以英文字母順序排序,特別適合用于希望把索引鍵排序的關(guān)聯(lián)數(shù)組。

    21. 在 PHP 中 error_reporting 這個(gè)函數(shù)有什么作用?

    打開或者關(guān)閉錯(cuò)誤報(bào)告,如:
    error_reporting(0);
    error_reporting(E_ALL & ~ E_NOTICE);
    error_reporting(E_ALL);

    相關(guān)題目:error_reporting(2047) 什么作用?(新浪)

    2047 = 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 + 256 + 512 + 1024
    其中:
    1 對(duì)應(yīng) E_ERROR,2 對(duì)應(yīng) E_WARNING,4 對(duì)應(yīng) E_PARSE,
    8 對(duì)應(yīng) E_NOTICE,16 對(duì)應(yīng) E_CORE_ERROR,32 對(duì)應(yīng) E_CORE_WARNING
    ,64 對(duì)應(yīng) E_COMPILE_ERROR,128對(duì)應(yīng) E_COMPILE_WARNING,256 對(duì)應(yīng) E_USER_ERROR,
    512 對(duì)應(yīng) E_USER_WARNING,1024 對(duì)應(yīng) E_USER_NOTICE。
    error_reporting(2047)意味著上述錯(cuò)誤都會(huì)顯示出來(lái)。

  • 寫出以下程序的輸出結(jié)果 (CBSI)

    <?php $str = 'cd'; $$str = 'hotdog';//$cd = 'hotdog'; $$str .= 'ok';//$cd .= 'ok'; echo $cd; ?>

    hotdogok

  • 相關(guān)題目:什么是可變變量?

    獲取一個(gè)普通變量的值作為這個(gè)可變變量的變量名。

    23. 常量如何定義? 如何檢測(cè)一個(gè)常量是否被定義?

    定義常量:define()
    檢測(cè)常量是否定義:defined()
    如:

    define("TEST","happy new year!"); if( defined("TEST")){ echo TEST; }
  • 執(zhí)行程序段<?php echo 8%(-2) ?>將輸出
    %為取模運(yùn)算,輸出 0
    $a % $b其結(jié)果的正負(fù)取決于 $a 的符號(hào)。
  • echo ((-8)%3)."<br />";//輸出 -2
    echo (8%(-3))."<br />";//輸出 2

    25. 數(shù)組函數(shù) arsort 的作用是_;語(yǔ)句 error_reporting(2047)的作用是_。

    arsort:對(duì)數(shù)組進(jìn)行逆向排序并保持索引關(guān)系
    error_reporting(2047)的作用 report All errors and warnings,見(jiàn) 21 題中相關(guān)題目。

    26. 以 Apache 模塊的方式安裝 PHP,在文件 http.conf 中首先要用語(yǔ)句_動(dòng)態(tài)裝載 PHP模塊,然后再用語(yǔ)句_使得 Apache 把所有擴(kuò)展名為 php 的文件都作為 PHP 腳本處理。

    LoadModule php5_module "c:/php/php5apache2.dll";
    AddType application/x-httpd-php .php

    27. 一個(gè)函數(shù)的參數(shù)不能是對(duì)變量的引用,除非在 php.ini 中把____設(shè)為 on.

    allow_call_time_pass_reference :是否啟用在函數(shù)調(diào)用時(shí)強(qiáng)制參數(shù)被按照引用傳遞,默認(rèn)關(guān)閉。

    28. 在 PHP 中,heredoc 是一種特殊的字符串,它的結(jié)束標(biāo)志必須____頂格寫,并且不能包含任何其它字符除";"
    29.echo count("abc"); 輸出什么?(新浪?)

    輸出 1
    count :計(jì)算數(shù)組中的單元數(shù)目或?qū)ο笾械膶傩詡€(gè)數(shù),通常是一個(gè) array,任何其它類型都只有一個(gè)單元。
    對(duì)于對(duì)象,如果安裝了 SPL,可以通過(guò)實(shí)現(xiàn) Countable 接口來(lái)調(diào)用 count()。該接口只有一個(gè)方法 count(),此方法返回 count() 函數(shù)的返回值。
    如果 var 不是數(shù)組類型或者實(shí)現(xiàn)了 Countable 接口的對(duì)象,將返回 1,有一個(gè)例外,如果 var 是 NULL 則結(jié)果是 0。

    相關(guān)題目:What will be the output of the following PHP code:(騰訊)
    <?phpecho count(strlen("http://php.net")); ?>

    answer: 1

    30. 寫個(gè)函數(shù)用來(lái)對(duì)二維數(shù)組排序(新浪)
    <?php/*** 根據(jù)某列對(duì)二維數(shù)組進(jìn)行排序* @param $arr array 要排序的二維數(shù)組 * @param $row string 排序依據(jù)的某列 * @param $type string asc表示正序,為默認(rèn)值;desc表示逆序 * @param array 返回排序后的二維數(shù)組 */ function array_sort($arr,$row,$type ='asc') { $arr_temp = array(); // 將排序依據(jù)作為數(shù)組的鍵名 foreach ($arr as $v) { $arr_temp[$v[$row]] = $v; } // print_r($arr_temp); // 按照鍵名對(duì)二維數(shù)組進(jìn)行排序,并保持索引關(guān)系 if ($type == 'asc') { ksort($arr_temp); } elseif($type == 'desc') { krsort($arr_temp); } // 返回排序結(jié)果 return $arr_temp; } // 實(shí)例 $person = array( array('id'=>2,'name'=>'zhangsan','age'=>23), array('id'=>5,'name'=>'lisi','age'=>28), array('id'=>3,'name'=>'apple','age'=>17) ); echo "<pre>before:<br />"; print_r($person); echo "</pre>"; echo "<hr />"; $person2 = array_sort($person,'name'); echo "<pre>after:<br />"; print_r($person2); echo "</pre>"; ?>
    31. 寫 5 個(gè)不同的自己的函數(shù),來(lái)獲取一個(gè)全路徑的文件的擴(kuò)展名,允許封裝 php 庫(kù)中已有的函數(shù)。(新浪)
    <?php/*寫 5 個(gè)不同的自己的函數(shù),來(lái)獲取一個(gè)全路徑的文件的擴(kuò)展名,允許封裝 php 庫(kù)中已有的函數(shù)。(新浪)*/// 方法一 function ext_name1($path){ $path_info = strrchr($path, '.');//.php return ltrim($path_info,'.'); } // 方法二 function ext_name2($path){ $path_info = substr($path,strrpos($path, '.')); return ltrim($path_info,'.'); } // 方法三 function ext_name3($path){ $path_info = pathinfo($path); return $path_info['extension']; } // 方法四 function ext_name4($path){ $arr = explode('.', $path); return $arr[count($arr)-1]; } // 方法五 function ext_name5($path){ $pattern = '/^[^\.]+\.([\w]+)$/'; return preg_replace($pattern, '${1}', basename($path)); } // 實(shí)例 $path = str_replace('\\', '/', __FILE__); echo "$path<br />"; echo ext_name1($path);echo "<br />"; echo ext_name2($path);echo "<br />"; echo ext_name3($path);echo "<br />"; echo ext_name4($path);echo "<br />"; echo ext_name5($path);echo "<br />"; ?>
    32. PHP 的意思,它能干些什么?

    PHP( Hypertext Preprocessor,超文本預(yù)處理器的字母縮寫)是一種被廣泛應(yīng)用的開放源代碼的多用途腳本語(yǔ)言,它可嵌入到 HTML 中,尤其適合 web 開發(fā)。
    PHP 主要是用于服務(wù)端的腳本程序,因此可以用 PHP 來(lái)完成任何其它的 CGI 程序能夠完成的工作,例如收集表單數(shù)據(jù),生成動(dòng)態(tài)網(wǎng)頁(yè),或者發(fā)送/接收Cookies。但 PHP 的功能遠(yuǎn)不局限于此。
    PHP 腳本主要用于以下三個(gè)領(lǐng)域:

    • 服務(wù)端腳本。這是 PHP 最傳統(tǒng),也是最主要的目標(biāo)領(lǐng)域。
    • 命令行腳本。可以編寫一段 PHP 腳本,并且不需要任何服務(wù)器或者瀏覽器來(lái)運(yùn)行它。通過(guò)這種方式,僅僅只需要 PHP 解析器來(lái)執(zhí)行。
    • 編寫桌面應(yīng)用程序。
    33. Name a few ways to output (print) a block of HTML code in PHP?(Yahoo)

    你可以使用 PHP 中任何一種輸出語(yǔ)句,包括 echo、print、printf,大部分人都使用如下例的 echo:
    echo "My string $variable";
    你也可以使用這種方法:

    echo <<<END This text is written to the screen as output and this $variable is parsed too. If you wanted you can have <span> HTML tags in here as well.</span> The END; remarks must be on a line of itsown, and can't contain any extra white space. END;
    34. 寫出以下程序的輸出結(jié)果 (CBSI)
    <?php$b = 201;$c = 40; $a = $b > $c ? 4 : 5; echo $a; ?>

    輸出結(jié)果為 4

  • $arr = array('james', 'tom', 'symfony');請(qǐng)打印出第一個(gè)元素的值,并請(qǐng)將數(shù)組的值用','號(hào)分隔并合并成字串輸出。
    打印第一個(gè)元素:echo $arr[0];
    以’,’合并成字符串:echo implode(',',$arr);
  • 36.?a=abcdef;請(qǐng)a 的值并打印出第一個(gè)字母

    echo $a{0} 或 echo $a[0]

    相關(guān)題目:string="abcdefg",string{4}的值是? (卓望)

    值是 e

    37. What does === do? What's an example of something that will give true for '==', but not'==='? (Yahoo)

    === 表示全等,是指的兩個(gè)變量的值和類型都相等。
    如 if (strpos('abc','a') == false) 和 if (strpos('abc','a') === false)

    38. Which of the following snippets prints a representation of 42 with two decimal places?(騰訊)

    A. printf("%.2d\n", 42);
    B. printf("%1.2f\n", 42);
    C. printf("%1.2u\n", 42);
    answer:B

    39. Given?text=Content?TypeType:text/xml;Whichofthefollowingprintstext/xml?A.printsubstr(text, strchr(text,:));B.printsubstr(text, strchr(text,:)+1);C.printsubstr(text, strpos(text,:)+1);D.printsubstr(text, strpos(text,:)+2);E.printsubstr(text, 0, strchr($text, ':'));

    answer:C
    分析:

    <?php$text = 'Content-Type:text/xml';print substr($text, strchr($text,':'));//出錯(cuò),strchr返回的是字符串 echo "<br />"; print substr($text, strchr($text,':')+1);//strchr返回的是字符串,字符串+1,返回ontent-Type:text/xml echo "<br />"; print substr($text, strpos($text,':')+1);//返回text/xml echo "<br />"; print substr($text, strpos($text,':')+2);//返回ext/xml echo "<br />"; print substr($text, 0,strchr($text,':'));//出錯(cuò),strchr返回的是字符串 echo "<br />"; ?>
    40. What is the value of $a?
    <?php$a = in_array('01',array('1')) == var_dump('01' == 1); ?>

    A. True
    B. False
    answer:A

    41. What is the value of $result in the following PHP code? (騰訊)
    <?phpfunction timesTwo($int) { $int = $int * 2; } $int = 2; $result = timesTwo($int); ?>

    answer: NULL

    42. What is the best all-purpose way of comparing two strings? (騰訊)

    A. Using the strpos function
    B. Using the == operator
    C. Using strcasecmp()
    D. Using strcmp()
    answer:C

    43. 運(yùn)行以下程序,$a 的值是多少?
    <?php/*運(yùn)行以下程序,$a 的值是多少?*/$a = "hello"; $b = &$a; unset($b); $b = "world"; echo $a,$b; ?>

    answer:hello

    44. 運(yùn)行以下程序,$b 的值是多少?
    <?php/*運(yùn)行以下程序,$b的值是多少?*/$a = 1; $b = $a++; echo $a,$b; ?>

    answer:1

    45. 運(yùn)行以下程序,$x 的值是多少?
    <?php/*運(yùn)行以下程序,$x 的值是多少?*/$array = array(); $x = empty($array); echo $x ? "true":"false"; ?>

    answer:ture

    46. 將字符 09 轉(zhuǎn)換成十進(jìn)制數(shù)字。(百度)

    使用 intval 函數(shù),echo intval("09"),或者使用 int 強(qiáng)制類型轉(zhuǎn)換。

    47. 請(qǐng) 寫 一 個(gè) 函 數(shù) , 實(shí) 現(xiàn) 以 下 功 能 : 字 符 串 "open_door" 轉(zhuǎn) 換 成 "OpenDoor" 、"make_by_id" 轉(zhuǎn)換成 "MakeById"。
    <?php/*** 字符串轉(zhuǎn)換,如open_door->OpenDoor,make_by_id->MakeById* @param $str string 要轉(zhuǎn)換的字符串 * @return string 轉(zhuǎn)換后的字符串 */ function change_str($str){ $arr = explode('_',$str);//將以“_”間隔的字符串拆分成數(shù)組的單元 $arr = array_map('ucfirst', $arr);//每個(gè)數(shù)組單元的首個(gè)字符大寫 return implode('', $arr);//將數(shù)組單元合并輸出字符串 } // 實(shí)例 $str1 = 'open_door'; $str2 = 'make_by_id'; echo change_str($str1);//OpenDoor echo change_str($str2);//MakeById ?>
    48. 要求寫一段程序,實(shí)現(xiàn)以下數(shù)組arr1轉(zhuǎn)數(shù)arr2:
    <?php$arr1 = array('0' => array('fid' => 1,'tid' =>1,'name' => 'Name1'), '1' => array('fid' => 1,'tid' =>2,'name' => 'Name2'), '2' => array('fid' => 1,'tid' =>5,'name' => 'Name3'), '3' => array('fid' => 1,'tid' =>7,'name' => 'Name4'), '4' => array('fid' => 3,'tid' =>9,'name' => 'Name5') ); // ======================================================= $arr_tmp = array(); $arr2 = array(); foreach ($arr1 as $v) { // 方法一 $arr_tmp[$v['fid']][] = array_slice($v, 1); // 方法二 /* $arr_tmp[$v['fid']][] = array( 'tid' => $v['tid'], 'name' => $v['name'] ) */ } foreach ($arr_tmp as $v) { $arr2[] = $v; } print_r($arr1); print_r($arr2); ?>
    49. 如何將一個(gè)數(shù)組元素的排列順序反轉(zhuǎn)過(guò)來(lái)(例如以下代碼反轉(zhuǎn)以后的順序是: array ('d','c', 'b', 'a'))? (選擇 2 個(gè)答案)
    <?php$array = array ('a', 'b', 'c', 'd'); ?>

    A. array_flip()
    B. array_reverse()
    C. sort()
    D. rsort()
    答案:BD

    50.?val=max(string,array(2,5,7),42);val 值為

    array(2,5,7)
    max 用法示例如下:

    <?phpecho max(1,3,5,6,7);//7 echo "<br />"; echo max(array(2,4,5));//5 echo "<br />"; echo max(0,'hello');//0 echo "<br />"; echo max('hello','0');//hello echo "<br />"; echo max(-1,'hello');//hello echo "<br />"; //對(duì)于多個(gè)數(shù)組,max從左向右比較 //因此在本例中:2 == 2,但是4 < 5 $val = max(array(2,4,8),array(2,5,7));//array(2,5,7) var_dump($val); echo "<br />"; // 如果同時(shí)給出數(shù)組和非數(shù)組作為參數(shù),則總是將數(shù)組視為最大值返回 $val = max('string', array(2, 5, 7), 42); var_dump($val); ?>
    51. 定義常量 MYPI=3.14_________________________;

    define("MYPI",3.14);

    52. 簡(jiǎn)述單引號(hào)和雙引號(hào)的用法

    雙引號(hào)串中的內(nèi)容可以被解釋而且替換,而單引號(hào)串中的內(nèi)容總被認(rèn)為是普通字符。

    53. Switch 完整語(yǔ)法和注意事項(xiàng)

    使用 Switch 語(yǔ)句可以避免冗長(zhǎng)的 if..elseif..else 代碼塊,case只能處理整數(shù),或者能像整數(shù)一樣運(yùn)算的類型,比如char,使用時(shí)case 后用'',注意 break不能少,default是為了處理一些之前沒(méi)有包含到的情況,這樣更為安全。

    54. 用 PHP 編寫代碼在頁(yè)面輸出當(dāng)前的北京時(shí)間,格式為 “2007-01-18 09:22:03”

    date_default_timezone_set('PRC');
    echo date("Y-m-d H:i:s",time());

    55. 簡(jiǎn)述 GBK、GB2312、BIG5 、GB18030

    GB2312 支持的漢字較少,GBK 是相比 GB2312 漢字更為豐富,包括全部中日韓漢字,GB18030 相比 GBK 增加了一些少數(shù)名族漢字漢字庫(kù)更為多樣,但是常人很難用到,一般簡(jiǎn)體中文使用 GBK 而繁體中文使用 BIG5。

    56. 計(jì)算某段字符串中某個(gè)字符出現(xiàn)的次數(shù)(例如 : gdfgfdgd59gmkblg 中 g 的次數(shù))
    $text = 'gdfgfdgd59gmkblg'; echo substr_count ( $text,'g');
    57. 以下語(yǔ)句可能存在錯(cuò)誤,如果存在錯(cuò)誤請(qǐng)指出什么錯(cuò)誤(每個(gè)語(yǔ)句單獨(dú)考慮)

    print_r $val = 333;// error,print_r 是一個(gè)函數(shù),需加上括號(hào),如果是 print 則可以
    print_r($val = 333);?// 正確
    $a += ($b = 4) + 5;// notice,a運(yùn)foo[bar] = 'enemy';// notice,最好 bar 加上引號(hào)function x($a = "1", $b){}`// 無(wú),但給參數(shù)默認(rèn)值應(yīng)盡量從右向左

    58. 寫出如下程序的輸出結(jié)果(小米)
    <?phpheader("Content-type:text/html;charset=utf-8");$str1 = null; $str2 = false; echo $str1 == $str2 ? '相等' : '不相等';//相等 $str3 = ''; $str4 = 0; echo $str3 == $str4 ? '相等' : '不相等';//相等 $str5 = 0; $str6 = '0'; echo $str1 === $str2 ? '相等' : '不相等';//相等 ?>
    59. 寫出如下程序的輸出結(jié)果
    <?php$a1 = null;$a2 = false; $a3 = 0; $a4 = ''; $a5 = '0'; $a6 = 'null'; $a7 = array(); $a8 = array(array()); echo empty($a1) ? 'true' : 'false';//ture echo '<br />'; echo empty($a2) ? 'true' : 'false';//ture echo '<br />'; echo empty($a3) ? 'true' : 'false';//ture echo '<br />'; echo empty($a4) ? 'true' : 'false';//ture echo '<br />'; echo empty($a5) ? 'true' : 'false';//ture echo '<br />'; echo empty($a6) ? 'true' : 'false';//false echo '<br />'; echo empty($a7) ? 'true' : 'false';//ture echo '<br />'; echo empty($a8) ? 'true' : 'false';//false ?>
    60. 寫出如下程序的輸出結(jié)果
    <?php$test = 'aaaa';$abc = &$test;unset($test); echo $abc; ?>

    aaaa

    61. 寫出如下程序的輸出結(jié)果
    <?php$count = 5;function get_count() { static $count = 0; return $count++; } echo $count;//5 ++$count;//6 echo get_count();//0 echo get_count();//1 ?>

    501

    分析:
    在 PHP 中,作用域是不重疊的,函數(shù)之外的是全局變量,函數(shù)內(nèi)部定義的則是局部變量,二者是兩個(gè)不同的變量,除非在函數(shù)內(nèi)使用 global 顯式聲明使用全局變量或直接用$_GLOBALS 來(lái)引用。

    62. 寫出如下程序的輸出結(jié)果
    <?php$GLOBALS['var1'] = 5; $var2 = 1; function get_value() { global $var2; $var1 = 0; return $var2++; } get_value(); echo $var1;//5 echo $var2;//2 ?>

    52

    63. 寫出如下程序的輸出結(jié)果
    <?phpfunction get_arr() { unset($arr[0]); } $arr1 = array(1,2); $arr2 = array(1,2); get_arr(&$arr1); get_arr($arr2); echo count($arr1);//1 echo count($arr2);//2 ?>

    12

    64.?arr=array(james,tom,symfony);請(qǐng)jackarr 數(shù)組的開頭,并把 jack 打印出來(lái)。
    array_unshift($arr,’jack’); echo $arr[0];
    65.?arr=array(james,tom,symfony);請(qǐng)arr 數(shù)組的值用 ’,’分割并合并成字符串輸出?

    echo implode(‘,’,$arr);

    66.?str=jack,james,tom,symfony;請(qǐng)str 用’,’分割,并把分割后的值放到$arr 數(shù)組中?

    $arr = explode(‘,’,$str);

    67.?arr=array(3,7,2,1,d,abc);請(qǐng)arr 按照從大到小的順序排序,并保持其鍵值不變?
    arsort($arr); print_r($arr);
    68. $mail = “gaofei@163.com”; 請(qǐng)將此郵箱的域(163.com)取出來(lái)并打印,看最多能寫出幾種方法?
    echo strstr($mail,'163'); echo substr($mail,7); echo substr($mail, strpos($mail, '@')+1); $arr = explode("@",$mail); echo $arr[1];
    69. PHP 中的注釋的寫法,要列出三種?

    // 注釋內(nèi)容?C 風(fēng)格的單行注釋
    # 注釋內(nèi)容?unix 風(fēng)格的單行注釋
    /* 注釋內(nèi)容 */?C 風(fēng)格的多行注釋

    70. 如何在一個(gè) php 函數(shù)中使用具有全局屬性的變量,說(shuō)出兩種方式?

    global $a 或者 $GLOBALS['a']

    71. 若$aa='aa';則 print('aa is \'aa\''."
    ")會(huì)輸出什么?

    aa is 'aa'

    72. 如何把$a = ‘123’轉(zhuǎn)化成 123,列出兩種方式?
    <?php$a = '123';$a = (int)$a; //第一種方式 $a = intval($a); //第二種方式 settype($a,'int'); //第三種方式 ?>
    相關(guān)題目:字符串怎么轉(zhuǎn)成整數(shù),有幾種方法?怎么實(shí)現(xiàn)?
  • 強(qiáng)制類型轉(zhuǎn)換: (整型)字符串變量名;
  • 直接轉(zhuǎn)換:settype(字符串變量,整型);
  • intval(字符串變量);
  • 73. 說(shuō)說(shuō) break 和 continue 可以用在哪些語(yǔ)句里,并且列出二者的區(qū)別?

    break 和 continue 可以用在 switch 語(yǔ)句中,或是循環(huán)結(jié)構(gòu)中
    它們的區(qū)別主要是體現(xiàn)在循環(huán)語(yǔ)句中,break 表示 跳出整個(gè)循環(huán),不再執(zhí)行,循環(huán)將終止,而 continue 則表示跳出本次循環(huán),繼續(xù)下一次的循環(huán),不會(huì)終止循環(huán)。

    74. 函數(shù)中的默認(rèn)參數(shù)位置如何放置?

    當(dāng)使用默認(rèn)參數(shù)時(shí),任何默認(rèn)參數(shù)必須放在任何非默認(rèn)參數(shù)的右側(cè);否則,函數(shù)將不會(huì)按照預(yù)期的情況工作。

    75. 如何往一個(gè)數(shù)組后面添加一個(gè)值?列出兩種方式?
    $arr[ ] = $value; array_push($arr, $value);
    [!!!]76. 說(shuō)出數(shù)組涉及到的常用函數(shù)。

    array --聲明一個(gè)數(shù)組
    count -- 計(jì)算數(shù)組中的單元數(shù)目或?qū)ο笾械膶傩詡€(gè)數(shù)
    foreach -- 遍歷數(shù)組
    list -- 將數(shù)組中元素的值賦值給變量,批量聲明變量
    explode -- 將字符串轉(zhuǎn)成數(shù)組
    implode -- 將數(shù)組轉(zhuǎn)成一個(gè)新字符串
    array_merge -- 合并一個(gè)或多個(gè)數(shù)組
    is_array -- 檢查是否是數(shù)組
    print_r -- 輸出數(shù)組
    sort -- 數(shù)組排序
    array_keys -- 返回?cái)?shù)組中所有的鍵名
    array_values -- 返回?cái)?shù)組中所有的值
    key -- 從關(guān)聯(lián)數(shù)組中取得鍵名

    [!!!]77. 字符串的常用函數(shù)?

    trim()-- 去除字符串首尾處的空白字符(或者其他字符)
    strlen()-- 字符串長(zhǎng)度
    substr()-- 截取字符串
    str_replace()-- 替換字符串函數(shù)
    strstr()-- 查找字符串的首次出現(xiàn)位置,返回 第一次出現(xiàn)的位置開始到結(jié)尾的字符串
    explode()-- 將字符串分割成數(shù)組
    implode()-- 將數(shù)組分割成字符串
    str_repeat() -- 重復(fù)一個(gè)字符串
    addslashes() -- 轉(zhuǎn)義字符串
    htmlspecialchars() -- HTML 實(shí)體轉(zhuǎn)義

    78. 以下代碼的執(zhí)行后是,$result 值為:(奇矩互動(dòng))
    <?php$srcArray=array('a','b','c','d'); $randValue=array_rand($srcArray); $result=is_string($randValue); ?>

    A. a
    B. false
    C. true
    D. b
    E. c
    答案:B
    mixed array_rand( array $input [, int $num_req ] )
    從數(shù)組中隨機(jī)取出一個(gè)或多個(gè)單元,它接受 input 作為輸入數(shù)組和一個(gè)可選的參數(shù)num_req,指明了你想取出多少個(gè)單元 - 如果沒(méi)有指定,默認(rèn)為 1。
    如果你只取出一個(gè),array_rand() 返回一個(gè)隨機(jī)單元的鍵名,否則就返回一個(gè)包含隨機(jī)鍵名的數(shù)組。
    所以使用 array_rand 函數(shù),返回結(jié)果要么是鍵名,要么是數(shù)組,在這個(gè)例子中,數(shù)組是索引數(shù)組,所以返回的是整型。

    79. 以下代碼的執(zhí)行后是,$result 值為: (奇矩互動(dòng))
    <?php$a= '01';$result = 1; if (in_array($a,array('1'))) { $result = 2; }elseif ($a == '1') { $result = 3; }elseif ($a == '01') { $result = 4; }else{ $result = 5; } echo $result; ?>

    A. 1
    B. 2
    C. 3
    D. 4
    E. 5
    答案:B

    80. php 函數(shù)名是否區(qū)分大小寫? (奇矩互動(dòng))

    A. 不區(qū)分
    B. 區(qū)分
    答案:A
    函數(shù)名是大小寫無(wú)關(guān)的,不過(guò)在調(diào)用函數(shù)的時(shí)候,通常使用其在定義時(shí)相同的形式。

    81.以下代碼的執(zhí)行后是,$result 值為:(奇矩互動(dòng))
    <?php$x = '';$result = is_null($x); ?>

    A. null
    B. true
    C. false
    D. 1
    答案:C

    is_null -- 檢測(cè)變量是否為 NULL,如果變量是 null 則返回 TRUE,否則返回 FALSE。
    在下列情況下一個(gè)變量被認(rèn)為是 NULL:

  • 被賦值為 NULL
  • 尚未被賦值
  • unset()
  • 82. 翻轉(zhuǎn)字符串中的單詞,字符串僅包含大小寫字母和空格,單詞間使用空格分隔。如 :輸入"This is PHP",輸出"PHP is This"(非必要請(qǐng)不要使用 PHP 自帶函數(shù)) (小米)
    <?phpfunction reverse($str) { $arr = explode(' ',$str); $arr = array_reverse($arr); return implode(' ',$arr); } $str = 'This is PHP'; echo reverse($str); ?>
    83. 請(qǐng)列舉出你所知道的全局環(huán)境變量 (億郵)

    $_ENV;
    $_SERVER;
    $_REQUEST;
    $_FILES;
    $_SESSION;
    $_COOKIE;
    $_GET;
    $_POST;
    $GLOBALS;

    84. 設(shè)有這樣一個(gè)數(shù)組$a=array(array(id=>0),array(id=>1),array(id=>2)......)id=>0-10000,請(qǐng)問(wèn)你如何使用 PHP 判斷 id=>500 是否在這個(gè)數(shù)組內(nèi)? (億郵)

    使用 in_array 函數(shù),代碼如下:

    <?php$a = array(array('id' => 0), array('id' => 1), array('id' => 2), array('id' => 3), array('id' => 4), array('id' => 500) ); $b = array('id' => 500); if (in_array($b,$a)) { echo "Yes"; }else{ echo "No"; } ?>
    85. 在 PHP 中兩個(gè)數(shù)組怎么連接合并在一起 (億郵)

    使用 array_merge()函數(shù)

    86. 運(yùn)行以上代碼后$a $b $c 分別是? (卓望)
    <?php$a = $b = $c = 0;$a = $b && $c; ?>

    afalseb = $c = 0

    1. strlen( )與 mb_strlen( )的作用分別是什么(新浪網(wǎng)技術(shù)部)

    strlen和mb_strlen都是用于獲取字符串長(zhǎng)度。
    strlen只針對(duì)單字節(jié)編碼字符,也就是說(shuō)它計(jì)算的是字符串的總字節(jié)數(shù)。如果是多字節(jié)編碼,如 gbk 和 utf-8,使用 strlen 得到是該字符的總字節(jié)數(shù);
    可以使用mb_strlen獲取其字符個(gè)數(shù),使用mb_strlen 要注意兩點(diǎn),一是要開啟 mbstring 擴(kuò)展,二是要指定字符集。

    總結(jié):

    • strlen函數(shù)不管是字符串是單字節(jié)編碼還是多字節(jié)編碼,函數(shù)返回的結(jié)果都是字符串的總字節(jié)數(shù)。
    • mb_strlen函數(shù)當(dāng)字符串是單字節(jié)編碼時(shí),函數(shù)返回的結(jié)果是字符串的總字節(jié)數(shù)。當(dāng)字符串是多字節(jié)編碼時(shí),函數(shù)返回的結(jié)果是字符串的個(gè)數(shù)。
      mb_strlen函數(shù)在沒(méi)有指定字符編碼時(shí),表示使用默認(rèn)字符編碼,即單字節(jié)編碼,函數(shù)返回的是字符串的總字節(jié)數(shù)。
    • PHP默認(rèn)是單字節(jié)編碼(內(nèi)部字符編碼),多字節(jié)編碼方式有g(shù)bk、utf-8等。

    示例

    <?php/*strlen( )與 mb_strlen( )的作用分別是什么(新浪網(wǎng)技術(shù)部)*/header('Content-Type:text/html;charset=utf-8'); // (1)英文字符串 $str1 ="duang~"; echo strlen($str1);//總字節(jié)數(shù)為6,內(nèi)部字符編碼,單字節(jié)編碼 echo "<br />"; echo mb_strlen($str1);//總字節(jié)數(shù)為6,內(nèi)部字符編碼 echo "<br />"; echo mb_strlen($str1,'utf-8');//總字節(jié)數(shù)或字符長(zhǎng)度為6,指定字符編碼(utf-8),多字節(jié)編碼 echo "<hr />"; // (2)中文字符串 $str2 = "你是我的小蘋果"; echo strlen($str2);//總字節(jié)數(shù)為21,內(nèi)部字符編碼,單字節(jié)編碼 echo "<br />"; echo mb_strlen($str2);//總字節(jié)數(shù)為21,內(nèi)部字符編碼 echo "<br />"; echo mb_strlen($str2,'utf-8');//字符長(zhǎng)度為7,指定字符編碼(utf-8),多字節(jié)編碼 ?>
    相關(guān)題目 1:實(shí)現(xiàn)中文字串截取無(wú)亂碼的方法。

    方法一,使用 php 內(nèi)置函數(shù) mb_substr()
    方法二,自定義函數(shù),以 utf-8 為例,如下:

    <?php/*相關(guān)題目 1:實(shí)現(xiàn)中文字串截取無(wú)亂碼的方法。*/header('Content-Type:text/html;charset=utf-8'); //=================方法一======================= $str = "你是我的溫暖陽(yáng)光"; echo mb_substr($str, 2,4,'utf-8');//輸出 我的溫暖 // ================方法二======================= /** * utf8編碼字符串截取無(wú)亂碼 * @param $str string 要處理的字符串 * @param $start int 從哪個(gè)位置開始截取 * @param $length int 要截取字符的個(gè)數(shù) * @return string 截取后得到的字符串 */ function substr_utf8($str,$start,$length = null) { $sep = ""; $arr = array_slice(preg_split("//u", $str,-1,PREG_SPLIT_NO_EMPTY), $start,$length); return join($sep,$arr); } // 示例 $str = "你是我的溫暖陽(yáng)光"; echo substr_utf8($str,2,4);//輸出 我的溫暖 ?>
    相關(guān)題目2:如何求解字符串“中國(guó)2北333京”的字符數(shù)(一個(gè)中文一個(gè)字符),并找到第四個(gè)字符“北”

    方法一,使用php內(nèi)置函數(shù),確保配置中已打開mbstring擴(kuò)展
    方法二,自定義函數(shù)實(shí)現(xiàn)求其長(zhǎng)度,截取使用上面定義的substr_utf8

    <?php/*相關(guān)題目 2:如何求解字符串“中國(guó)2北333京”的字符數(shù)(一個(gè)中文一個(gè)字符),并找到第四個(gè)字符“北”*/header('Content-Type:text/html;charset=utf-8'); //=================方法一======================= $str = "中國(guó)2北333京"; echo mb_strlen($str,'utf-8');//輸出字符數(shù) 8 echo mb_substr($str, 3,1,'utf-8');//輸出 北 // ================方法二======================= /** * utf8編碼字符串截取無(wú)亂碼 * @param $str string 要處理的字符串 * @param $start int 從哪個(gè)位置開始截取 * @param $length int 要截取字符的個(gè)數(shù) * @return string 截取后得到的字符串 */ function substr_utf8($str,$start,$length = null) { $sep = ""; $arr = array_slice(preg_split("//u", $str,-1,PREG_SPLIT_NO_EMPTY), $start,$length); return join($sep,$arr); } /** * utf8編碼字符串計(jì)算長(zhǎng)度 * @param $str string 要處理的字符串 * @return int 字符串的長(zhǎng)度或字符個(gè)數(shù) */ function strlen_utf8($str) { return count(preg_split("//u", $str,-1,PREG_SPLIT_NO_EMPTY)); } // 示例 $str = "中國(guó)2北333京"; echo strlen_utf8($str);//輸出字符數(shù) 8 echo substr_utf8($str,3,1);//輸出 北 ?>
    2. 下列哪個(gè)函數(shù)是用正則表達(dá)式將字符串分割到數(shù)組中 ( )

    A. split
    B. implode
    C. explode
    D. join
    答案:A

    3. 寫出下列程序的輸出結(jié)果(新浪網(wǎng)技術(shù)部)
    <?php/*寫出下列程序的輸出結(jié)果(新浪網(wǎng)技術(shù)部)*/$x = 87; $y = ($x % 7) * 16; $z = $x > $y ? 1 : 0; echo $z; ?>

    答案:1

    4. 寫出下列幾個(gè)預(yù)定義全局變量的作用 (新浪網(wǎng)技術(shù)部)
    $_SERVER['DOCUMENT_ROOT']//當(dāng)前運(yùn)行腳本所在的文檔根目錄 $_SERVER['HTTP_HOST ']//當(dāng)前請(qǐng)求的 Host: 頭部的內(nèi)容 $_SERVER['REMOTE_ADDR']//正在瀏覽當(dāng)前頁(yè)面用戶的 IP 地址 $_SERVER['HTTP_REFERER']//鏈接到當(dāng)前頁(yè)面的前一頁(yè)面的 URL 地址 $_SERVER['SERVER_NAME']//當(dāng)前運(yùn)行腳本所在服務(wù)器主機(jī)的名稱 $_FILES //包含有所有上傳的文件信息 S_FILES['userfile']['name']//客戶端機(jī)器文件的原名稱 $_FILES['userfile']['type']//文件 MIME 類型,如果瀏覽器提供此信息的話,如“image/gif”。 $_FILES['userfile']['size']//已上傳文件的大小,單位為字節(jié) $_FILES['userfile']['tmp_name']//文件被上傳后在服務(wù)端儲(chǔ)存的臨時(shí)文件名 $_FILES['userfile']['error']//和該文件上傳相關(guān)的錯(cuò)誤代碼
    5. include 和 require 都能把另外一個(gè)文件包含到當(dāng)前文件中,他們有什么區(qū)別?Include 和include_once 又有什么區(qū)別?(新浪網(wǎng)技術(shù)部)

    二者區(qū)別只有一個(gè),那就是對(duì)包含文件的需求程度。include 就是包含,如果被包含的文件不存在的話,那么則會(huì)提示一個(gè)錯(cuò)誤,但是程序會(huì)繼續(xù)執(zhí)行下去。而 require 意思是需要,如果被包含文件不存在或者無(wú)法打開的時(shí)候,則會(huì)提示錯(cuò)誤,并且會(huì)終止程序的執(zhí)行。
    這兩種結(jié)構(gòu)除了在如何處理失敗之外完全一樣。
    once 的意思是一次,那么 include_once 和 require_once 表示只包含一次,避免重復(fù)包含。

    相關(guān)題目 1:What is the difference between include & include_once? include & require?(Yahoo)
    相關(guān)題目 2:語(yǔ)句 include 和 require 都能把另外一個(gè)文件包含到當(dāng)前文件中,它們的區(qū)

    別是_;為了避免多次包含同一文件,可以用語(yǔ)句_來(lái)代替它們。
    在如何處理失敗時(shí),include()產(chǎn)生一個(gè)警告而require()則導(dǎo)致一個(gè)致命錯(cuò)誤;require_once()/include_once()

    相關(guān)題目 3:What functions can you use to add library code to the currently running script?(Yahoo)

    include、require

    6. 用最少的代碼寫一個(gè)求 3 值最大值的函數(shù). (51.com 筆試題)
    <?php/*6. 用最少的代碼寫一個(gè)求 3 值最大值的函數(shù). (51.com 筆試題)*/// 定義函數(shù) function maxnum($a,$b,$c) { return $a > $b ? ($a > $c ? $a : $c) : ($b > $c ? $b : $c); } // 調(diào)用實(shí)例 echo maxnum(24,15,8); ?>
    7. 簡(jiǎn)述 POST 和 GET 傳輸?shù)淖畲笕萘糠謩e是多少? (51.com 筆試題)

    POST 根據(jù)你 php.ini 文件配置(默認(rèn)是 8M)
    GET 的話大小限制在 2KB

    相關(guān)題目:表單中 get 與 post 提交方法的區(qū)別?

    get 是發(fā)送請(qǐng)求 HTTP 協(xié)議通過(guò) url 參數(shù)傳遞進(jìn)行接收,而 post 是實(shí)體數(shù)據(jù),可以通過(guò)表單提交大量信息。

    8. 有三個(gè) php 文件位于同一目錄下,內(nèi)容如下所示。使用瀏覽器訪問(wèn) c.php,請(qǐng)問(wèn)是否存在問(wèn)題。如果存在問(wèn)題,請(qǐng)指出修正方法并寫出瀏覽器查看效果 ,如果不存在問(wèn)題,請(qǐng)寫出瀏覽器查看效果(酷訊 PHP 工程師筆試題)

    A.php:

    <?phpfunction fa(){ echo "in Function A\n"; } ?>

    B.php:

    <?phpinclude 'a.php'; function fb() { fa(); echo "in Function B\n"; } ?>

    C.php:

    <?phpinclude 'a.php'; include 'b.php'; fa(); fb(); ?>

    答案:存在問(wèn)題,a.php 被包含了兩次,導(dǎo)致 fa()函數(shù)重復(fù)定義,使用 include_once 避免重復(fù)包含。

    9. echo(),print(),print_r()的區(qū)別?(新浪)

    echo, print是PHP語(yǔ)句print_r是函數(shù),語(yǔ)句沒(méi)有返回值,函數(shù)可以有返回值(即便沒(méi)有用)
    print只能打印出簡(jiǎn)單類型變量的值(如int,string)
    print_r可以打印出復(fù)雜類型變量的值(如數(shù)組,對(duì)象)

    echo -- 輸出一個(gè)或者多個(gè)字符串
    print --輸出一個(gè)字符串
    print_r -- 打印關(guān)于變量的易于理解的信息。

    在實(shí)際使用中, print 和 echo 兩者的功能幾乎是完全一樣。
    可以這么說(shuō),凡是有一個(gè)可以使用的地方,另一個(gè)也可以使用。但是,兩者之間也還是一個(gè)非常重要的區(qū)別:
    在 echo 函數(shù)中,可以同時(shí)輸出多個(gè)字符串,而在 print 函數(shù)中則只可以同時(shí)輸出一個(gè)字符串。同時(shí),echo函數(shù)并不需要圓括號(hào),所以echo函數(shù)更像是語(yǔ)句而不像是函數(shù)。
    echo 和 print 都不是函數(shù),而是語(yǔ)言結(jié)構(gòu),所以圓括號(hào)都不是必需的。他們的區(qū)別在于:

    (1) echo可以輸出多個(gè)字符串,像下面這樣:
    echo 'a','b','c';
    如果你非要加上圓括號(hào),注意寫成echo ('a','b','c');是錯(cuò)誤的,應(yīng)該寫成:
    echo ('a'),('b'),('c');
    它沒(méi)有像函數(shù)的行為,所以不能用于函數(shù)的上下文

    (2) print只能輸出一個(gè)字符串,它可以表現(xiàn)得像一個(gè)函數(shù),比如你可以如下使用:
    $ret = print 'Hello World';
    (有返回值所以能夠用在更復(fù)雜的表達(dá)式中,可以判斷是否輸出成功等表達(dá)式)所以它能用在更復(fù)雜的表達(dá)式中。

    另外,echo的效率相對(duì)比較快~

    如下代碼:

    <?php$a='hello ';$b='php world!'; echo $a,$b.'<br />';//echo 可以用逗號(hào)分隔字符串變量來(lái)顯示 print $a.$b.'<br />';//而print不能使用逗號(hào),只能用點(diǎn)號(hào)分隔 print $a,$b.'<br />';//使用逗號(hào)時(shí)報(bào)錯(cuò)。 ?>

    說(shuō)明:

  • ,是 echo 本身支持的一種語(yǔ)法,而.則是字符串連接操作符,使用,的效率要高一些。(少了連接運(yùn)算)
  • echo可以使用,來(lái)分隔字符串變量,也可以使用,來(lái)分隔字符串變量;print只能使用.來(lái)分隔字符串變量。
  • echo效率比print高
  • 總結(jié)
    echo命令和print命令相同,沒(méi)有區(qū)別
    echo()和print()有區(qū)別:
    echo()沒(méi)有返回值,與echo命令相同
    print()有返回值,總是返回1

    補(bǔ)充:
    printf()和sprintf()類似,均為格式化輸出,不同的是前者輸出到標(biāo)準(zhǔn)輸出,后者輸出到變量

    相關(guān)題目:What is the difference between "print()" and "echo( )"? (騰訊)

    answer: print is a function,echo is a language construct

    10. 用 PHP 打印出前一天的時(shí)間格式是 2006-5-10 22:21:21。
    <?php/*用 PHP 打印出前一天的時(shí)間格式是 2006-5-10 22:21:21。*/// ================方法一================== echo date("Y-m-d H:i:s",time() - 3600*24); echo "<br />"; // ================方法二================== echo date("Y-m-d H:i:s",strtotime("-1 day")); echo "<br />"; // 將表單中提交的時(shí)間字符串"2015-6-23"轉(zhuǎn)成時(shí)間戳 $date = strtotime("2015-6-23"); echo $date; ?>

    說(shuō)明:

    • 使用strtotime可以將任何字符串的時(shí)間表示(now,seconds,day,week等)轉(zhuǎn)換成時(shí)間戳,僅針對(duì)英文。
    • 在實(shí)際開發(fā)的時(shí)候,strtotime非常有用,因?yàn)閷?duì)于表單來(lái)說(shuō),提交的數(shù)據(jù)都是字符串。比如,“2013-4-27”需要將其轉(zhuǎn)換成時(shí)間戳然后存到數(shù)據(jù)庫(kù)中。
    相關(guān)題目:求兩個(gè)日期的差數(shù),例如 2009-3-1 ~ 2009-4-4 的日期差數(shù)

    (strtotime("2009-4-4")-strtotime("2009-3-1"))/3600*24

    11. 不使用第三個(gè)變量交換兩個(gè)變量的值
    <?php/*不使用第三個(gè)變量交換兩個(gè)變量的值*/// ================方法一================== $a = "PHP"; $b = "MySQL"; echo '$a='.$a.'<br />'; echo '$b='.$b.'<br />'; list($a,$b) = array($b,$a); echo '$a='.$a.'<br />'; echo '$b='.$b.'<br />'; echo "<hr />"; // ================方法二================== $a = "PHP"; $b = "MySQL"; echo '$a='.$a.'<br />'; echo '$b='.$b.'<br />'; $a = $a.'&'.$b;//使用&連接兩個(gè)字符串 // 根據(jù)&進(jìn)行字符串分割 $b = explode('&', $a); $a = $b[1]; $b = $b[0]; echo '$a='.$a.'<br />'; echo '$b='.$b.'<br />'; ?>
  • 請(qǐng)說(shuō)明 php 中傳值與傳引用的區(qū)別。什么時(shí)候傳值什么時(shí)候傳引用?
    變量默認(rèn)總是傳值賦值。
    那也就是說(shuō),當(dāng)將一個(gè)表達(dá)式的值賦予一個(gè)變量時(shí),整個(gè)原始表達(dá)式的值被賦值到目標(biāo)變量。這意味著,例如,當(dāng)一個(gè)變量的值賦予另外一個(gè)變量時(shí),改變其中一個(gè)變量的值,將不會(huì)影響到另外一個(gè)變量。
    PHP 也提供了另外一種方式給變量賦值:引用賦值。
    這意味著新的變量簡(jiǎn)單的引用(換言之,“成為其別名” 或者 “指向”)了原始變量。改動(dòng)新的變量將影響到原始變量,反之亦然。使用引用賦值,簡(jiǎn)單地將一個(gè)&符號(hào)加到將要賦值的變量前(源變量)。
    對(duì)象默認(rèn)是傳引用。
    對(duì)于較大的數(shù)據(jù),傳引用比較好,這樣可以節(jié)省內(nèi)存的開銷。
  • 相關(guān)題目 1:What would the following code print to the browser? Why?
    <?php$num = 10;function multipy($num){ $num = $num +10; } multipy($num); echo $num; ?>

    輸出 10

    相關(guān)題目 2:What is the difference between a reference and a regular variable? How do you pass by reference & why would you want to?(Yahoo)

    reference 傳送的是變量的地址而非它的值,所以在函數(shù)中改變一個(gè)變量的值時(shí),整個(gè)應(yīng)用都見(jiàn)到這個(gè)變量的新值。
    一個(gè) regular variable 傳送給函數(shù)的是它的值,當(dāng)函數(shù)改變這個(gè)變量的值時(shí),只有這個(gè)函數(shù)才見(jiàn)到新值,應(yīng)用的其他部分仍然見(jiàn)到舊值。

    13. 將 1234567890 轉(zhuǎn)換成 1,234,567,890 每 3 ���用逗號(hào)隔開的形式。(百度)
    <?php$str ='1234567890';function str($str) { // 反轉(zhuǎn)字符串,得到0987654321 $str = strrev($str); // 使用逗號(hào)分割字符串,得到098,765,432,1, $str = chunk_split($str,3,','); // 再次反轉(zhuǎn)字符串,得到,1,234,567,890 $str = strrev($str); // 去掉左邊的",",得到1,234,567,890 $str = ltrim($str,','); return $str; } echo str($str); ?>
    相關(guān)題目 1:如何實(shí)現(xiàn)字符串翻轉(zhuǎn)?

    strrev(),不過(guò)這種方法都不能解決中文字符串翻轉(zhuǎn)的問(wèn)題,會(huì)出錯(cuò)的。

    <?phpheader("Content-Type:text/html;charset=utf-8");/** * 反轉(zhuǎn)utf8編碼的中文字符串 * @param string $str * @return string */ function strrev_utf8($str) { return join("",array_reverse(preg_split("//u", $str))); } // 實(shí)例 $str = "悄悄是別離的笙簫"; echo strrev_utf8($str); ?>
    相關(guān)題目 2:假設(shè)現(xiàn)在有一個(gè)字符串 www.baidu.com 如何使用 PHP 對(duì)它進(jìn)行操作使字符串以 moc.udiab.輸出? (億郵)
    <?php$str = "www.baidu.com";echo strrev(str_replace('www','',$str)); ?>
    14. 用 PHP 寫出顯示客戶端 IP 與服務(wù)器 IP 的代碼。

    客戶端 IP:$_SERVER["REMOTE_ADDR"]
    服務(wù)器端 IP:$_SERVER["SERVER_ADDR"]

    15. 簡(jiǎn)述如何得到當(dāng)前執(zhí)行腳本路徑,包括所得到參數(shù)。

    獲取當(dāng)前執(zhí)行腳本路徑使用$_SERVER["SCRIPT_FILENAME"]或__FILE__
    獲取參數(shù),使用$_SERVER["QUERY_STRING"]

    16. What is the difference between foo() & @foo()?(Yahoo)

    foo() 會(huì)執(zhí)行這個(gè)函式,任何解譯錯(cuò)誤、語(yǔ)法錯(cuò)誤、執(zhí)行錯(cuò)誤都會(huì)在頁(yè)面上顯示出來(lái)。
    @foo() 在執(zhí)行這個(gè)函式時(shí),會(huì)隱藏所有上述的錯(cuò)誤訊息。
    很多應(yīng)用程序都使用 @mysql_connect() 和 @mysql_query 來(lái)隱藏 mysql 的錯(cuò)誤信息,這是不對(duì)的,因?yàn)殄e(cuò)誤不該被隱藏,你必須妥善處理它們,可能的話解決它們。

    17. 下面哪個(gè)選項(xiàng)沒(méi)有將 john 添加到 users 數(shù)組中? ( 百度 )

    A.?users[]="john";B.arrayadd(users, "john");
    C. array_push($users, "john");
    D. $users ||= "john" ;
    答案:BD

    18. 檢測(cè)一個(gè)變量是否有設(shè)置的函數(shù)?是否為空的函數(shù)是?

    isset 檢測(cè)一個(gè)變量是否設(shè)置
    empty 檢測(cè)是否為空
    注意二者的區(qū)別,如果 變量 是非空或非零的值,則 empty() 返回 FALSE。換句話說(shuō),""、0、"0"、NULL、FALSE、array() 以及沒(méi)有任何屬性的對(duì)象都將被認(rèn)為是空的。
    isset是檢測(cè)變量是否設(shè)置/定義,empty是檢測(cè)已定義的變量的值是否為空。

    19. 在 PHP 中,當(dāng)前腳本的名稱(不包括路徑和查詢字符串)記錄在預(yù)定義變量______中;而鏈接到當(dāng)前頁(yè)面的的前一頁(yè)面 URL 記錄在預(yù)定義變量______中。

    當(dāng)前腳本名稱:$_SERVER["PHP_SELF"]或者?SERVER["SCRIPTNAME"]當(dāng)頁(yè)頁(yè)URL_SERVER["HTTP_REFERER"]。

    20. sort()、assort()、和 ksort() 有什么分別?它們分別在什么情況下使用?

    sort(),根據(jù)數(shù)組中元素的值,以英文字母順序排序,索引鍵會(huì)由 0 到 n-1 重新編號(hào)。主要是當(dāng)數(shù)組索引鍵的值無(wú)關(guān)緊要時(shí)用來(lái)把數(shù)組排序。
    assort(),PHP 沒(méi)有 assort() 函式,所以可能是 asort() 的筆誤。
    asort(),對(duì)數(shù)組進(jìn)行排序,數(shù)組的索引保持和單元的關(guān)聯(lián)。主要用于對(duì)那些單元順序很重要的結(jié)合數(shù)組進(jìn)行排序。
    ksort(),根據(jù)數(shù)組中索引鍵的值,以英文字母順序排序,特別適合用于希望把索引鍵排序的關(guān)聯(lián)數(shù)組。

    21. 在 PHP 中 error_reporting 這個(gè)函數(shù)有什么作用?

    打開或者關(guān)閉錯(cuò)誤報(bào)告,如:
    error_reporting(0);
    error_reporting(E_ALL & ~ E_NOTICE);
    error_reporting(E_ALL);

    相關(guān)題目:error_reporting(2047) 什么作用?(新浪)

    2047 = 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 + 256 + 512 + 1024
    其中:
    1 對(duì)應(yīng) E_ERROR,2 對(duì)應(yīng) E_WARNING,4 對(duì)應(yīng) E_PARSE,
    8 對(duì)應(yīng) E_NOTICE,16 對(duì)應(yīng) E_CORE_ERROR,32 對(duì)應(yīng) E_CORE_WARNING
    ,64 對(duì)應(yīng) E_COMPILE_ERROR,128對(duì)應(yīng) E_COMPILE_WARNING,256 對(duì)應(yīng) E_USER_ERROR,
    512 對(duì)應(yīng) E_USER_WARNING,1024 對(duì)應(yīng) E_USER_NOTICE。
    error_reporting(2047)意味著上述錯(cuò)誤都會(huì)顯示出來(lái)。

  • 寫出以下程序的輸出結(jié)果 (CBSI)

    <?php $str = 'cd'; $$str = 'hotdog';//$cd = 'hotdog'; $$str .= 'ok';//$cd .= 'ok'; echo $cd; ?>

    hotdogok

  • 相關(guān)題目:什么是可變變量?

    獲取一個(gè)普通變量的值作為這個(gè)可變變量的變量名。

    23. 常量如何定義? 如何檢測(cè)一個(gè)常量是否被定義?

    定義常量:define()
    檢測(cè)常量是否定義:defined()
    如:

    define("TEST","happy new year!"); if( defined("TEST")){ echo TEST; }
  • 執(zhí)行程序段<?php echo 8%(-2) ?>將輸出
    %為取模運(yùn)算,輸出 0
    $a % $b其結(jié)果的正負(fù)取決于 $a 的符號(hào)。
  • echo ((-8)%3)."<br />";//輸出 -2
    echo (8%(-3))."<br />";//輸出 2

    25. 數(shù)組函數(shù) arsort 的作用是_;語(yǔ)句 error_reporting(2047)的作用是_。

    arsort:對(duì)數(shù)組進(jìn)行逆向排序并保持索引關(guān)系
    error_reporting(2047)的作用 report All errors and warnings,見(jiàn) 21 題中相關(guān)題目。

    26. 以 Apache 模塊的方式安裝 PHP,在文件 http.conf 中首先要用語(yǔ)句_動(dòng)態(tài)裝載 PHP模塊,然后再用語(yǔ)句_使得 Apache 把所有擴(kuò)展名為 php 的文件都作為 PHP 腳本處理。

    LoadModule php5_module "c:/php/php5apache2.dll";
    AddType application/x-httpd-php .php

    27. 一個(gè)函數(shù)的參數(shù)不能是對(duì)變量的引用,除非在 php.ini 中把____設(shè)為 on.

    allow_call_time_pass_reference :是否啟用在函數(shù)調(diào)用時(shí)強(qiáng)制參數(shù)被按照引用傳遞,默認(rèn)關(guān)閉。

    28. 在 PHP 中,heredoc 是一種特殊的字符串,它的結(jié)束標(biāo)志必須____頂格寫,并且不能包含任何其它字符除";"
    29.echo count("abc"); 輸出什么?(新浪?)

    輸出 1
    count :計(jì)算數(shù)組中的單元數(shù)目或?qū)ο笾械膶傩詡€(gè)數(shù),通常是一個(gè) array,任何其它類型都只有一個(gè)單元。
    對(duì)于對(duì)象,如果安裝了 SPL,可以通過(guò)實(shí)現(xiàn) Countable 接口來(lái)調(diào)用 count()。該接口只有一個(gè)方法 count(),此方法返回 count() 函數(shù)的返回值。
    如果 var 不是數(shù)組類型或者實(shí)現(xiàn)了 Countable 接口的對(duì)象,將返回 1,有一個(gè)例外,如果 var 是 NULL 則結(jié)果是 0。

    相關(guān)題目:What will be the output of the following PHP code:(騰訊)
    <?phpecho count(strlen("http://php.net")); ?>

    answer: 1

    30. 寫個(gè)函數(shù)用來(lái)對(duì)二維數(shù)組排序(新浪)
    <?php/*** 根據(jù)某列對(duì)二維數(shù)組進(jìn)行排序* @param $arr array 要排序的二維數(shù)組 * @param $row string 排序依據(jù)的某列 * @param $type string asc表示正序,為默認(rèn)值;desc表示逆序 * @param array 返回排序后的二維數(shù)組 */ function array_sort($arr,$row,$type ='asc') { $arr_temp = array(); // 將排序依據(jù)作為數(shù)組的鍵名 foreach ($arr as $v) { $arr_temp[$v[$row]] = $v; } // print_r($arr_temp); // 按照鍵名對(duì)二維數(shù)組進(jìn)行排序,并保持索引關(guān)系 if ($type == 'asc') { ksort($arr_temp); } elseif($type == 'desc') { krsort($arr_temp); } // 返回排序結(jié)果 return $arr_temp; } // 實(shí)例 $person = array( array('id'=>2,'name'=>'zhangsan','age'=>23), array('id'=>5,'name'=>'lisi','age'=>28), array('id'=>3,'name'=>'apple','age'=>17) ); echo "<pre>before:<br />"; print_r($person); echo "</pre>"; echo "<hr />"; $person2 = array_sort($person,'name'); echo "<pre>after:<br />"; print_r($person2); echo "</pre>"; ?>
    31. 寫 5 個(gè)不同的自己的函數(shù),來(lái)獲取一個(gè)全路徑的文件的擴(kuò)展名,允許封裝 php 庫(kù)中已有的函數(shù)。(新浪)
    <?php/*寫 5 個(gè)不同的自己的函數(shù),來(lái)獲取一個(gè)全路徑的文件的擴(kuò)展名,允許封裝 php 庫(kù)中已有的函數(shù)。(新浪)*/// 方法一 function ext_name1($path){ $path_info = strrchr($path, '.');//.php return ltrim($path_info,'.'); } // 方法二 function ext_name2($path){ $path_info = substr($path,strrpos($path, '.')); return ltrim($path_info,'.'); } // 方法三 function ext_name3($path){ $path_info = pathinfo($path); return $path_info['extension']; } // 方法四 function ext_name4($path){ $arr = explode('.', $path); return $arr[count($arr)-1]; } // 方法五 function ext_name5($path){ $pattern = '/^[^\.]+\.([\w]+)$/'; return preg_replace($pattern, '${1}', basename($path)); } // 實(shí)例 $path = str_replace('\\', '/', __FILE__); echo "$path<br />"; echo ext_name1($path);echo "<br />"; echo ext_name2($path);echo "<br />"; echo ext_name3($path);echo "<br />"; echo ext_name4($path);echo "<br />"; echo ext_name5($path);echo "<br />"; ?>
    32. PHP 的意思,它能干些什么?

    PHP( Hypertext Preprocessor,超文本預(yù)處理器的字母縮寫)是一種被廣泛應(yīng)用的開放源代碼的多用途腳本語(yǔ)言,它可嵌入到 HTML 中,尤其適合 web 開發(fā)。
    PHP 主要是用于服務(wù)端的腳本程序,因此可以用 PHP 來(lái)完成任何其它的 CGI 程序能夠完成的工作,例如收集表單數(shù)據(jù),生成動(dòng)態(tài)網(wǎng)頁(yè),或者發(fā)送/接收Cookies。但 PHP 的功能遠(yuǎn)不局限于此。
    PHP 腳本主要用于以下三個(gè)領(lǐng)域:

    • 服務(wù)端腳本。這是 PHP 最傳統(tǒng),也是最主要的目標(biāo)領(lǐng)域。
    • 命令行腳本。可以編寫一段 PHP 腳本,并且不需要任何服務(wù)器或者瀏覽器來(lái)運(yùn)行它。通過(guò)這種方式,僅僅只需要 PHP 解析器來(lái)執(zhí)行。
    • 編寫桌面應(yīng)用程序。
    33. Name a few ways to output (print) a block of HTML code in PHP?(Yahoo)

    你可以使用 PHP 中任何一種輸出語(yǔ)句,包括 echo、print、printf,大部分人都使用如下例的 echo:
    echo "My string $variable";
    你也可以使用這種方法:

    echo <<<END This text is written to the screen as output and this $variable is parsed too. If you wanted you can have <span> HTML tags in here as well.</span> The END; remarks must be on a line of itsown, and can't contain any extra white space. END;
    34. 寫出以下程序的輸出結(jié)果 (CBSI)
    <?php$b = 201;$c = 40; $a = $b > $c ? 4 : 5; echo $a; ?>

    輸出結(jié)果為 4

  • $arr = array('james', 'tom', 'symfony');請(qǐng)打印出第一個(gè)元素的值,并請(qǐng)將數(shù)組的值用','號(hào)分隔并合并成字串輸出。
    打印第一個(gè)元素:echo $arr[0];
    以’,’合并成字符串:echo implode(',',$arr);
  • 36.?a=abcdef;請(qǐng)a 的值并打印出第一個(gè)字母

    echo $a{0} 或 echo $a[0]

    相關(guān)題目:string="abcdefg",string{4}的值是? (卓望)

    值是 e

    37. What does === do? What's an example of something that will give true for '==', but not'==='? (Yahoo)

    === 表示全等,是指的兩個(gè)變量的值和類型都相等。
    如 if (strpos('abc','a') == false) 和 if (strpos('abc','a') === false)

    38. Which of the following snippets prints a representation of 42 with two decimal places?(騰訊)

    A. printf("%.2d\n", 42);
    B. printf("%1.2f\n", 42);
    C. printf("%1.2u\n", 42);
    answer:B

    39. Given?text=Content?TypeType:text/xml;Whichofthefollowingprintstext/xml?A.printsubstr(text, strchr(text,:));B.printsubstr(text, strchr(text,:)+1);C.printsubstr(text, strpos(text,:)+1);D.printsubstr(text, strpos(text,:)+2);E.printsubstr(text, 0, strchr($text, ':'));

    answer:C
    分析:

    <?php$text = 'Content-Type:text/xml';print substr($text, strchr($text,':'));//出錯(cuò),strchr返回的是字符串 echo "<br />"; print substr($text, strchr($text,':')+1);//strchr返回的是字符串,字符串+1,返回ontent-Type:text/xml echo "<br />"; print substr($text, strpos($text,':')+1);//返回text/xml echo "<br />"; print substr($text, strpos($text,':')+2);//返回ext/xml echo "<br />"; print substr($text, 0,strchr($text,':'));//出錯(cuò),strchr返回的是字符串 echo "<br />"; ?>
    40. What is the value of $a?
    <?php$a = in_array('01',array('1')) == var_dump('01' == 1); ?>

    A. True
    B. False
    answer:A

    41. What is the value of $result in the following PHP code? (騰訊)
    <?phpfunction timesTwo($int) { $int = $int * 2; } $int = 2; $result = timesTwo($int); ?>

    answer: NULL

    42. What is the best all-purpose way of comparing two strings? (騰訊)

    A. Using the strpos function
    B. Using the == operator
    C. Using strcasecmp()
    D. Using strcmp()
    answer:C

    43. 運(yùn)行以下程序,$a 的值是多少?
    <?php/*運(yùn)行以下程序,$a 的值是多少?*/$a = "hello"; $b = &$a; unset($b); $b = "world"; echo $a,$b; ?>

    answer:hello

    44. 運(yùn)行以下程序,$b 的值是多少?
    <?php/*運(yùn)行以下程序,$b的值是多少?*/$a = 1; $b = $a++; echo $a,$b; ?>

    answer:1

    45. 運(yùn)行以下程序,$x 的值是多少?
    <?php/*運(yùn)行以下程序,$x 的值是多少?*/$array = array(); $x = empty($array); echo $x ? "true":"false"; ?>

    answer:ture

    46. 將字符 09 轉(zhuǎn)換成十進(jìn)制數(shù)字。(百度)

    使用 intval 函數(shù),echo intval("09"),或者使用 int 強(qiáng)制類型轉(zhuǎn)換。

    47. 請(qǐng) 寫 一 個(gè) 函 數(shù) , 實(shí) 現(xiàn) 以 下 功 能 : 字 符 串 "open_door" 轉(zhuǎn) 換 成 "OpenDoor" 、"make_by_id" 轉(zhuǎn)換成 "MakeById"。
    <?php/*** 字符串轉(zhuǎn)換,如open_door->OpenDoor,make_by_id->MakeById* @param $str string 要轉(zhuǎn)換的字符串 * @return string 轉(zhuǎn)換后的字符串 */ function change_str($str){ $arr = explode('_',$str);//將以“_”間隔的字符串拆分成數(shù)組的單元 $arr = array_map('ucfirst', $arr);//每個(gè)數(shù)組單元的首個(gè)字符大寫 return implode('', $arr);//將數(shù)組單元合并輸出字符串 } // 實(shí)例 $str1 = 'open_door'; $str2 = 'make_by_id'; echo change_str($str1);//OpenDoor echo change_str($str2);//MakeById ?>
    48. 要求寫一段程序,實(shí)現(xiàn)以下數(shù)組arr1轉(zhuǎn)數(shù)arr2:
    <?php$arr1 = array('0' => array('fid' => 1,'tid' =>1,'name' => 'Name1'), '1' => array('fid' => 1,'tid' =>2,'name' => 'Name2'), '2' => array('fid' => 1,'tid' =>5,'name' => 'Name3'), '3' => array('fid' => 1,'tid' =>7,'name' => 'Name4'), '4' => array('fid' => 3,'tid' =>9,'name' => 'Name5') ); // ======================================================= $arr_tmp = array(); $arr2 = array(); foreach ($arr1 as $v) { // 方法一 $arr_tmp[$v['fid']][] = array_slice($v, 1); // 方法二 /* $arr_tmp[$v['fid']][] = array( 'tid' => $v['tid'], 'name' => $v['name'] ) */ } foreach ($arr_tmp as $v) { $arr2[] = $v; } print_r($arr1); print_r($arr2); ?>
    49. 如何將一個(gè)數(shù)組元素的排列順序反轉(zhuǎn)過(guò)來(lái)(例如以下代碼反轉(zhuǎn)以后的順序是: array ('d','c', 'b', 'a'))? (選擇 2 個(gè)答案)
    <?php$array = array ('a', 'b', 'c', 'd'); ?>

    A. array_flip()
    B. array_reverse()
    C. sort()
    D. rsort()
    答案:BD

    50.?val=max(string,array(2,5,7),42);val 值為

    array(2,5,7)
    max 用法示例如下:

    <?phpecho max(1,3,5,6,7);//7 echo "<br />"; echo max(array(2,4,5));//5 echo "<br />"; echo max(0,'hello');//0 echo "<br />"; echo max('hello','0');//hello echo "<br />"; echo max(-1,'hello');//hello echo "<br />"; //對(duì)于多個(gè)數(shù)組,max從左向右比較 //因此在本例中:2 == 2,但是4 < 5 $val = max(array(2,4,8),array(2,5,7));//array(2,5,7) var_dump($val); echo "<br />"; // 如果同時(shí)給出數(shù)組和非數(shù)組作為參數(shù),則總是將數(shù)組視為最大值返回 $val = max('string', array(2, 5, 7), 42); var_dump($val); ?>
    51. 定義常量 MYPI=3.14_________________________;

    define("MYPI",3.14);

    52. 簡(jiǎn)述單引號(hào)和雙引號(hào)的用法

    雙引號(hào)串中的內(nèi)容可以被解釋而且替換,而單引號(hào)串中的內(nèi)容總被認(rèn)為是普通字符。

    53. Switch 完整語(yǔ)法和注意事項(xiàng)

    使用 Switch 語(yǔ)句可以避免冗長(zhǎng)的 if..elseif..else 代碼塊,case只能處理整數(shù),或者能像整數(shù)一樣運(yùn)算的類型,比如char,使用時(shí)case 后用'',注意 break不能少,default是為了處理一些之前沒(méi)有包含到的情況,這樣更為安全。

    54. 用 PHP 編寫代碼在頁(yè)面輸出當(dāng)前的北京時(shí)間,格式為 “2007-01-18 09:22:03”

    date_default_timezone_set('PRC');
    echo date("Y-m-d H:i:s",time());

    55. 簡(jiǎn)述 GBK、GB2312、BIG5 、GB18030

    GB2312 支持的漢字較少,GBK 是相比 GB2312 漢字更為豐富,包括全部中日韓漢字,GB18030 相比 GBK 增加了一些少數(shù)名族漢字漢字庫(kù)更為多樣,但是常人很難用到,一般簡(jiǎn)體中文使用 GBK 而繁體中文使用 BIG5。

    56. 計(jì)算某段字符串中某個(gè)字符出現(xiàn)的次數(shù)(例如 : gdfgfdgd59gmkblg 中 g 的次數(shù))
    $text = 'gdfgfdgd59gmkblg'; echo substr_count ( $text,'g');
    57. 以下語(yǔ)句可能存在錯(cuò)誤,如果存在錯(cuò)誤請(qǐng)指出什么錯(cuò)誤(每個(gè)語(yǔ)句單獨(dú)考慮)

    print_r $val = 333;// error,print_r 是一個(gè)函數(shù),需加上括號(hào),如果是 print 則可以
    print_r($val = 333);?// 正確
    $a += ($b = 4) + 5;// notice,a運(yùn)foo[bar] = 'enemy';// notice,最好 bar 加上引號(hào)function x($a = "1", $b){}`// 無(wú),但給參數(shù)默認(rèn)值應(yīng)盡量從右向左

    58. 寫出如下程序的輸出結(jié)果(小米)
    <?phpheader("Content-type:text/html;charset=utf-8");$str1 = null; $str2 = false; echo $str1 == $str2 ? '相等' : '不相等';//相等 $str3 = ''; $str4 = 0; echo $str3 == $str4 ? '相等' : '不相等';//相等 $str5 = 0; $str6 = '0'; echo $str1 === $str2 ? '相等' : '不相等';//相等 ?>
    59. 寫出如下程序的輸出結(jié)果
    <?php$a1 = null;$a2 = false; $a3 = 0; $a4 = ''; $a5 = '0'; $a6 = 'null'; $a7 = array(); $a8 = array(array()); echo empty($a1) ? 'true' : 'false';//ture echo '<br />'; echo empty($a2) ? 'true' : 'false';//ture echo '<br />'; echo empty($a3) ? 'true' : 'false';//ture echo '<br />'; echo empty($a4) ? 'true' : 'false';//ture echo '<br />'; echo empty($a5) ? 'true' : 'false';//ture echo '<br />'; echo empty($a6) ? 'true' : 'false';//false echo '<br />'; echo empty($a7) ? 'true' : 'false';//ture echo '<br />'; echo empty($a8) ? 'true' : 'false';//false ?>
    60. 寫出如下程序的輸出結(jié)果
    <?php$test = 'aaaa';$abc = &$test;unset($test); echo $abc; ?>

    aaaa

    61. 寫出如下程序的輸出結(jié)果
    <?php$count = 5;function get_count() { static $count = 0; return $count++; } echo $count;//5 ++$count;//6 echo get_count();//0 echo get_count();//1 ?>

    501

    分析:
    在 PHP 中,作用域是不重疊的,函數(shù)之外的是全局變量,函數(shù)內(nèi)部定義的則是局部變量,二者是兩個(gè)不同的變量,除非在函數(shù)內(nèi)使用 global 顯式聲明使用全局變量或直接用$_GLOBALS 來(lái)引用。

    62. 寫出如下程序的輸出結(jié)果
    <?php$GLOBALS['var1'] = 5; $var2 = 1; function get_value() { global $var2; $var1 = 0; return $var2++; } get_value(); echo $var1;//5 echo $var2;//2 ?>

    52

    63. 寫出如下程序的輸出結(jié)果
    <?phpfunction get_arr() { unset($arr[0]); } $arr1 = array(1,2); $arr2 = array(1,2); get_arr(&$arr1); get_arr($arr2); echo count($arr1);//1 echo count($arr2);//2 ?>

    12

    64.?arr=array(james,tom,symfony);請(qǐng)jackarr 數(shù)組的開頭,并把 jack 打印出來(lái)。
    array_unshift($arr,’jack’); echo $arr[0];
    65.?arr=array(james,tom,symfony);請(qǐng)arr 數(shù)組的值用 ’,’分割并合并成字符串輸出?

    echo implode(‘,’,$arr);

    66.?str=jack,james,tom,symfony;請(qǐng)str 用’,’分割,并把分割后的值放到$arr 數(shù)組中?

    $arr = explode(‘,’,$str);

    67.?arr=array(3,7,2,1,d,abc);請(qǐng)arr 按照從大到小的順序排序,并保持其鍵值不變?
    arsort($arr); print_r($arr);
    68. $mail = “gaofei@163.com”; 請(qǐng)將此郵箱的域(163.com)取出來(lái)并打印,看最多能寫出幾種方法?
    echo strstr($mail,'163'); echo substr($mail,7); echo substr($mail, strpos($mail, '@')+1); $arr = explode("@",$mail); echo $arr[1];
    69. PHP 中的注釋的寫法,要列出三種?

    // 注釋內(nèi)容?C 風(fēng)格的單行注釋
    # 注釋內(nèi)容?unix 風(fēng)格的單行注釋
    /* 注釋內(nèi)容 */?C 風(fēng)格的多行注釋

    70. 如何在一個(gè) php 函數(shù)中使用具有全局屬性的變量,說(shuō)出兩種方式?

    global $a 或者 $GLOBALS['a']

    71. 若$aa='aa';則 print('aa is \'aa\''."
    ")會(huì)輸出什么?

    aa is 'aa'

    72. 如何把$a = ‘123’轉(zhuǎn)化成 123,列出兩種方式?
    <?php$a = '123';$a = (int)$a; //第一種方式 $a = intval($a); //第二種方式 settype($a,'int'); //第三種方式 ?>
    相關(guān)題目:字符串怎么轉(zhuǎn)成整數(shù),有幾種方法?怎么實(shí)現(xiàn)?
  • 強(qiáng)制類型轉(zhuǎn)換: (整型)字符串變量名;
  • 直接轉(zhuǎn)換:settype(字符串變量,整型);
  • intval(字符串變量);
  • 73. 說(shuō)說(shuō) break 和 continue 可以用在哪些語(yǔ)句里,并且列出二者的區(qū)別?

    break 和 continue 可以用在 switch 語(yǔ)句中,或是循環(huán)結(jié)構(gòu)中
    它們的區(qū)別主要是體現(xiàn)在循環(huán)語(yǔ)句中,break 表示 跳出整個(gè)循環(huán),不再執(zhí)行,循環(huán)將終止,而 continue 則表示跳出本次循環(huán),繼續(xù)下一次的循環(huán),不會(huì)終止循環(huán)。

    74. 函數(shù)中的默認(rèn)參數(shù)位置如何放置?

    當(dāng)使用默認(rèn)參數(shù)時(shí),任何默認(rèn)參數(shù)必須放在任何非默認(rèn)參數(shù)的右側(cè);否則,函數(shù)將不會(huì)按照預(yù)期的情況工作。

    75. 如何往一個(gè)數(shù)組后面添加一個(gè)值?列出兩種方式?
    $arr[ ] = $value; array_push($arr, $value);
    [!!!]76. 說(shuō)出數(shù)組涉及到的常用函數(shù)。

    array --聲明一個(gè)數(shù)組
    count -- 計(jì)算數(shù)組中的單元數(shù)目或?qū)ο笾械膶傩詡€(gè)數(shù)
    foreach -- 遍歷數(shù)組
    list -- 將數(shù)組中元素的值賦值給變量,批量聲明變量
    explode -- 將字符串轉(zhuǎn)成數(shù)組
    implode -- 將數(shù)組轉(zhuǎn)成一個(gè)新字符串
    array_merge -- 合并一個(gè)或多個(gè)數(shù)組
    is_array -- 檢查是否是數(shù)組
    print_r -- 輸出數(shù)組
    sort -- 數(shù)組排序
    array_keys -- 返回?cái)?shù)組中所有的鍵名
    array_values -- 返回?cái)?shù)組中所有的值
    key -- 從關(guān)聯(lián)數(shù)組中取得鍵名

    [!!!]77. 字符串的常用函數(shù)?

    trim()-- 去除字符串首尾處的空白字符(或者其他字符)
    strlen()-- 字符串長(zhǎng)度
    substr()-- 截取字符串
    str_replace()-- 替換字符串函數(shù)
    strstr()-- 查找字符串的首次出現(xiàn)位置,返回 第一次出現(xiàn)的位置開始到結(jié)尾的字符串
    explode()-- 將字符串分割成數(shù)組
    implode()-- 將數(shù)組分割成字符串
    str_repeat() -- 重復(fù)一個(gè)字符串
    addslashes() -- 轉(zhuǎn)義字符串
    htmlspecialchars() -- HTML 實(shí)體轉(zhuǎn)義

    78. 以下代碼的執(zhí)行后是,$result 值為:(奇矩互動(dòng))
    <?php$srcArray=array('a','b','c','d'); $randValue=array_rand($srcArray); $result=is_string($randValue); ?>

    A. a
    B. false
    C. true
    D. b
    E. c
    答案:B
    mixed array_rand( array $input [, int $num_req ] )
    從數(shù)組中隨機(jī)取出一個(gè)或多個(gè)單元,它接受 input 作為輸入數(shù)組和一個(gè)可選的參數(shù)num_req,指明了你想取出多少個(gè)單元 - 如果沒(méi)有指定,默認(rèn)為 1。
    如果你只取出一個(gè),array_rand() 返回一個(gè)隨機(jī)單元的鍵名,否則就返回一個(gè)包含隨機(jī)鍵名的數(shù)組。
    所以使用 array_rand 函數(shù),返回結(jié)果要么是鍵名,要么是數(shù)組,在這個(gè)例子中,數(shù)組是索引數(shù)組,所以返回的是整型。

    79. 以下代碼的執(zhí)行后是,$result 值為: (奇矩互動(dòng))
    <?php$a= '01';$result = 1; if (in_array($a,array('1'))) { $result = 2; }elseif ($a == '1') { $result = 3; }elseif ($a == '01') { $result = 4; }else{ $result = 5; } echo $result; ?>

    A. 1
    B. 2
    C. 3
    D. 4
    E. 5
    答案:B

    80. php 函數(shù)名是否區(qū)分大小寫? (奇矩互動(dòng))

    A. 不區(qū)分
    B. 區(qū)分
    答案:A
    函數(shù)名是大小寫無(wú)關(guān)的,不過(guò)在調(diào)用函數(shù)的時(shí)候,通常使用其在定義時(shí)相同的形式。

    81.以下代碼的執(zhí)行后是,$result 值為:(奇矩互動(dòng))
    <?php$x = '';$result = is_null($x); ?>

    A. null
    B. true
    C. false
    D. 1
    答案:C

    is_null -- 檢測(cè)變量是否為 NULL,如果變量是 null 則返回 TRUE,否則返回 FALSE。
    在下列情況下一個(gè)變量被認(rèn)為是 NULL:

  • 被賦值為 NULL
  • 尚未被賦值
  • unset()
  • 82. 翻轉(zhuǎn)字符串中的單詞,字符串僅包含大小寫字母和空格,單詞間使用空格分隔。如 :輸入"This is PHP",輸出"PHP is This"(非必要請(qǐng)不要使用 PHP 自帶函數(shù)) (小米)
    <?phpfunction reverse($str) { $arr = explode(' ',$str); $arr = array_reverse($arr); return implode(' ',$arr); } $str = 'This is PHP'; echo reverse($str); ?>
    83. 請(qǐng)列舉出你所知道的全局環(huán)境變量 (億郵)

    $_ENV;
    $_SERVER;
    $_REQUEST;
    $_FILES;
    $_SESSION;
    $_COOKIE;
    $_GET;
    $_POST;
    $GLOBALS;

    84. 設(shè)有這樣一個(gè)數(shù)組$a=array(array(id=>0),array(id=>1),array(id=>2)......)id=>0-10000,請(qǐng)問(wèn)你如何使用 PHP 判斷 id=>500 是否在這個(gè)數(shù)組內(nèi)? (億郵)

    使用 in_array 函數(shù),代碼如下:

    <?php$a = array(array('id' => 0), array('id' => 1), array('id' => 2), array('id' => 3), array('id' => 4), array('id' => 500) ); $b = array('id' => 500); if (in_array($b,$a)) { echo "Yes"; }else{ echo "No"; } ?>
    85. 在 PHP 中兩個(gè)數(shù)組怎么連接合并在一起 (億郵)

    使用 array_merge()函數(shù)

    86. 運(yùn)行以上代碼后$a $b $c 分別是? (卓望)
    <?php$a = $b = $c = 0;$a = $b && $c; ?>

    afalseb = $c = 0

    轉(zhuǎn)載于:https://www.cnblogs.com/shenzikun1314/p/8268692.html

    總結(jié)

    以上是生活随笔為你收集整理的php面试题之三——PHP语言基础(基础部分)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。