王牌对王牌第一季综艺,黄视频在线观看网站,世界一级毛片,成人黄色免费看

薈聚奇文、博采眾長、見賢思齊
當(dāng)前位置:公文素材庫 > 公文素材 > 范文素材 > php程序員面試題(附答案)

php程序員面試題(附答案)

網(wǎng)站:公文素材庫 | 時間:2019-05-29 11:42:53 | 移動端:php程序員面試題(附答案)

php程序員面試題(附答案)

PHP經(jīng)典面試題(連載4).

1請說明PHP中傳值與傳引用的區(qū)別。什么時候傳值什么時候傳引用?

答:傳值只是把某一個變量的值傳給了另一個變量,而引用則說明兩者指向了同一個地方。

2在PHP中error_reporting這個函數(shù)有什么作用?

答:Theerror_reporting()functionsetstheerror_reportingdirectiveatruntime.PHPhasmanylevelsoferrors,usingthisfunctionsetsthatlevelfortheduration(runtime)ofyourscript.

3請用正則表達(dá)式(RegularExpression)寫一個函數(shù)驗(yàn)證電子郵件的格式是否正確。答:}}else{?>

EMAIL檢測functioncheckEmail(sText){

varreg=/^(?:w+.?)*w+@(?:w+.?)*w+$/;

varemail=document.getElementById(sText).value;if(!reg.test(email)){

alert("電子郵件檢測失敗");}else{

alert("電子郵件格式正確");}}

電子郵件:

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

5有一個一維數(shù)組,里面存儲整形數(shù)據(jù),請寫一個函數(shù),將他們按從大到小的順序排列。要求執(zhí)行效率高。并說明如何改善執(zhí)行效率。(該函數(shù)必須自己實(shí)現(xiàn),不能使用php函數(shù))}

$test=array(1,3,6,8,2,7);BubbleSort($test);var_dump($test);?>

6請舉例說明在你的開發(fā)過程中用什么方法來加快頁面的加載速度

答:要用到服務(wù)器資源時才打開,及時關(guān)閉服務(wù)器資源,數(shù)據(jù)庫添加索引,頁面可生成靜態(tài),圖片等大文件單獨(dú)服務(wù)器。使用代碼優(yōu)化工具啦

擴(kuò)展閱讀:php程序員面試題(b卷 附答案)

1.以下哪一句不會把John新增到users陣列?$users[]="john";

成功把John新增到陣列users。array_add($users,john);函式array_add()無定義。array_push($users,john);

成功把John新增到陣列users。$users||="john";語法錯誤。

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

根據(jù)陣列中元素的值,以英文字母順序排序,索引鍵會由0到n-1重新編號。主要是當(dāng)陣列索引鍵的值無關(guān)疼癢時用來把陣列排序。assort()

PHP沒有assort()函式,所以可能是asort()的筆誤。asort()

與sort()一樣把陣列的元素按英文字母順序來排列,不同的是所有索引鍵都獲得保留,特別適合替聯(lián)想陣列排序。ksort()

根據(jù)陣列中索引鍵的值,以英文字母順序排序,特別適合用于希望把索引鍵排序的聯(lián)想陣列。3.以下的代碼會產(chǎn)生什么?為什么?$num=10;

functionmultiply(){$num=$num*10;}

multiply();echo$num;

由于函式multiply()沒有指定$num為全域變量(例如global$num或者$_GLOBALS["num"]),所以$num的值是10。

4.reference跟一個正規(guī)的變量有什么分別?如何passbyreference?在什么情況下我們需要這樣做?

Reference傳送的是變量的地址而非它的值,所以在函式中改變一個變量的值時,整個應(yīng)用都見到這個變量的新值。

一個正規(guī)變量傳送給函式的是它的值,當(dāng)函式改變這個變量的值時,只有這個函式才見到新值,應(yīng)用的其他部分仍然見到舊值。

$myVariable="its"value";

Myfunction(&$myVariable);//以reference傳送參數(shù)以reference傳送參數(shù)給函式,可以使函式改變了的變量,即使在函式結(jié)束后仍然保留新值。5.些函式可以用來在現(xiàn)正執(zhí)行的腳本中插入函式庫?

對這道題目不同的理解會有不同的答案,我的第一個想法是插入PHP函式庫不外乎include()、include_once()、require()、require_once(),但細(xì)心再想,“函式庫”也應(yīng)該包括com物件和.net函式庫,所以我們的答案也要分別包括com_load和dotnet_load,下次有人提起“函式庫”的時候,別忘記這兩個函式。6.foo()與@foo()有什么分別?

foo()會執(zhí)行這個函式,任何解譯錯誤、語法錯誤、執(zhí)行錯誤都會在頁面上顯示出來。@foo()在執(zhí)行這個函式時,會隱藏所有上述的錯誤訊息。

很多應(yīng)用程式都使用@mysql_connect()和@mysql_query來隱藏mysql的錯誤訊息,我認(rèn)為這是很嚴(yán)重的失誤,因?yàn)殄e誤不該被隱藏,你必須妥善處理它們,可能的話解決它們。7.你如何替PHP的應(yīng)用程式偵錯?

我并不常這樣做,我曾經(jīng)試過很多不同的偵錯工具,在Linux系統(tǒng)中設(shè)定這些工具一點(diǎn)也不容易。不過以下我會介紹一個近來頗受注目的偵錯工具。

PHP-AdvancedPHPDebugger或稱PHP-APD,第一步是執(zhí)行以下的指令安裝:pearinstallapd安裝后在你的腳本的開頭位置加入以下的語句開始進(jìn)行偵錯:apd_set_pprof_trace();執(zhí)行完畢,打開以下檔案來查閱執(zhí)行日志:apd.dumpdir

你也可以使用pprofp來格式化日志。

詳細(xì)的資料可以參閱。8.“===”是什么?試舉一個“==”是真但“===”是假的例子。“===”是給既可以送回布爾值“假”,也可以送回一個不是布爾值但卻可以賦與“假”值的函式,strpos()和strrpos()便是其中兩個例子。

問題的第二部份有點(diǎn)困難,想一個“==”是假,但是“===”是真的例子卻很容易,相反的例子卻很少。但我終于找到以下的例子:

if(strpos("abc","a")==true){//這部分永不會被執(zhí)行,因?yàn)?a"的位置是0,換算成布爾值“假”}if(strpos("abc","a")===true){//這部份會被執(zhí)行,因?yàn)椤?==”保證函式strpos()的送回值不會換算成布爾值.}

9.你會如何定義一個沒有成員函式或特性的類別myclass?classmyclass{}

10.你如何產(chǎn)生一個myclass的物件?$obj=newmyclass();

11.在一個類別內(nèi)如何存取這個類別的特性及變改它的值?使用語句:$this->propertyName,例如:

classmyclass{private$propertyName;publicfunction__construct(){$this->propertyName="value";}}

12.include和include_once有什么分別?require又如何?

三者都是用來在腳本中插入其他檔案,視乎url_allow_fopen是否核準(zhǔn),這個檔案可以從系統(tǒng)內(nèi)部或外部取得。但他們之間也有微細(xì)的分別:

include():這個函式容許你在腳本中把同一個檔案插入多次,若果檔案不存在,它會發(fā)出系統(tǒng)警告并繼續(xù)執(zhí)行腳本。

include_once():它跟include()的功能相似,正如它的名字所示,在腳本的執(zhí)行期間,有關(guān)檔案只會被插入一次。

require():跟include()差不多,它也是用來在腳本中插入其他檔案,但若果檔案不存在,它會發(fā)出系統(tǒng)警告,這個警告會引致致命錯誤令腳本中止執(zhí)行13.以下哪一個函式可以把瀏覽器轉(zhuǎn)向到另一個頁面?redir()

這不是一個PHP函式,會引致執(zhí)行錯誤。header()

這個是正確答案,header()用來插入卷頭資料,可以用來使瀏覽器轉(zhuǎn)向到另一個頁面,例如:header("Location:-this.com/");location()

這不是一個PHP函式,會引致執(zhí)行錯誤。redirect()

這不是一個PHP函式,會引致執(zhí)行錯誤。

14.以下哪一個函式可以用來開啟檔案以便讀/寫?fget()

這不是一個PHP函式,會引致執(zhí)行錯誤。file_open()

這不是一個PHP函式,會引致執(zhí)行錯誤。fopen()

這是正確答案,fopen()可以用來開啟檔案以便讀/寫,事實(shí)上這個函式還有很多選項(xiàng),詳細(xì)資料請參閱php.net。open_file()

這不是一個PHP函式,會引致執(zhí)行錯誤。

15.mysql_fetch_row()和mysql_fetch_array()有什么分別?

mysql_fetch_row()把數(shù)據(jù)庫的一列儲存在一個以零為基數(shù)的陣列中,第一欄在陣列的索引0,第二欄在索引1,如此類推。mysql_fetch_assoc()把數(shù)據(jù)庫的一列儲存在一個關(guān)聯(lián)陣列中,陣列的索引就是欄位名稱,例如我的數(shù)據(jù)庫查詢送回“first_name”、“l(fā)ast_name”、“email”三個欄位,陣列的索引便是“first_name”、“l(fā)ast_name”和“email”。mysql_fetch_array()可以同時送回mysql_fetch_row()和mysql_fetch_assoc()的值。16.下面的代碼用來做什么?請解釋。$date="08/26/201*";print

ereg_replace("([0-9]+)/([0-9]+)/([0-9]+)","[url=file://2///1///3%22,$date]\\\\2/\\\\1/\\\\3",$date[/url]);這是把一個日期從MM/DD/YYYY的格式轉(zhuǎn)為DD/MM/YYYY格式。我的一個好朋友告訴我可以把這個正規(guī)表達(dá)式拆解為以下的語句,對于如此簡單的表示是來說其實(shí)無須拆解,純粹為了解說的方便:

//對應(yīng)一個或更多0-9,后面緊隨一個斜號$regExpression="([0-9]+)/";//應(yīng)一個或更多0-9,后面緊隨另一個斜號$regExpression.="([0-9]+)/";//再次對應(yīng)一個或更多0-9$regExpression.="([0-9]+)";至于[url=file://2///1///3]\\\\2/\\\\1/\\\\3[/url]則是用來對應(yīng)括號,第一個括號對的是月份,第二個括號對應(yīng)的是日期,第三個括號對應(yīng)的是年份。

17.給你一行文字$string,你會如何編寫一個正規(guī)表達(dá)式,把$string內(nèi)的HTML標(biāo)簽除去?首先,PHP有內(nèi)建函式strip_tags()除去HTML標(biāo)簽,為何要自行編寫正規(guī)表達(dá)式?好了,便當(dāng)作是面試的一道考題吧,我會這樣回答:

$stringOfText="Thisisatest";$expression="/(.*?)/";echopreg_replace($expression,"[url=file://2/]\\\\2[/url]",$stringOfText);//有人說也可以使用/(]*>)/$expression="/(]*>)/";echopreg_replace($expression,"",$stringOfText);18.PHP和Perl分辨陣列和散列表的方法有什么差異?這正是為何我老是告訴別人選擇適當(dāng)?shù)木幊陶Z言,若果你只用一種語言的話你怎么能回答這道問題?這道問題很簡單,Perl所有陣列變量都是以@開頭,例如@myArray,PHP則沿用$作為所有變量的開頭,例如$myArray。

至于Perl表示散列表則用%,例如%myHash,PHP則沒有分別,仍是使用$,例如$myHash。

19.你如何利用PHP解決HTTP的無狀態(tài)本質(zhì)?

最主要的倆各選擇是session和cookie。使用session的方法是在每一頁的開始加上session_start(),然后利用$_SESSION散列表來儲存session變量。至于cookie你只需記著一個原則:在輸出任何文字之前調(diào)用set_cookie()函式,此外只需使用$_COOKIE散列表便可以存取所有cookie變量。

還有一個不那么可靠的方法,就是利用訪客的IP地址,這個方法有特定的危險性。20.GD函式庫用來做什么?

這個可能是我最喜歡的函式庫,自從PHP4.3.0版本后GD便內(nèi)建在PHP系統(tǒng)中。這個函式庫讓你處理和顯示各式格式的圖檔,它的另一個常見用途是制作所圖檔。GD以外的另一個選擇是ImageMagick,但這個函式庫并不內(nèi)建于PHP之中,必須由系統(tǒng)管理員安裝在伺服器上。

21.試寫出幾個輸出一段HTML代碼的方法。

嗯,你可以使用PHP中任何一種輸出語句,包括echo、print、printf,大部分人都使用如下例的echo:

echo"Mystring$variable";你也可以使用這種方法:

echo

友情提示:本文中關(guān)于《php程序員面試題(附答案)》給出的范例僅供您參考拓展思維使用,php程序員面試題(附答案):該篇文章建議您自主創(chuàng)作。

來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請聯(lián)系我們及時刪除。


php程序員面試題(附答案)》由互聯(lián)網(wǎng)用戶整理提供,轉(zhuǎn)載分享請保留原作者信息,謝謝!
鏈接地址:http://www.taixiivf.com/gongwen/695397.html
相關(guān)文章