php程序員面試題(b卷_附答案)_第1頁(yè)
php程序員面試題(b卷_附答案)_第2頁(yè)
php程序員面試題(b卷_附答案)_第3頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1. 以下哪一句不會(huì)把 John 新增到 users 陣列$users = john;成功把 John 新增到陣列 users 。 array_add($users, john );函式 array_add() 無定義。 array_push($users, john );成功把 John 新增到陣列 users 。$users |= john;語(yǔ)法錯(cuò)誤。() 、 assort() 、和 ksort() 有什么分別它們分別在什么情況下使用?sort()根據(jù)陣列中元素的值, 以英文字母順序排序, 索引鍵會(huì)由 0 到 n-1 重新編號(hào)。 主要是當(dāng)陣 列索引鍵的值無關(guān)疼癢時(shí)用來把陣列排序。assor

2、t()PHP 沒有 assort() 函式,所以可能是 asort() 的筆誤 。asort()與 sort() 一樣把陣列的元素按英文字母順序來排列, 不同的是所有索引鍵都獲得保存, 特 別適合替聯(lián)想陣列排序。ksort()根據(jù)陣列中索引鍵的值, 以英文字母順序排序, 特別適合用于希望把索引鍵排序的聯(lián)想陣列。3. 以下的代碼會(huì)產(chǎn)生什么為什么?$num= 10;function multiply ()$num= $num* 10;multiply () ;echo $num; 由于函 式 multiply() 沒有指 定 $num 為 全域 變量(例如 global $num 或 者 $_GL

3、OBALSnum ),所以 $num 的值是 10 。4. reference 跟一個(gè)正規(guī)的變量有什么分別如何 pass by reference 在什么情況下我們需 要這樣做?Reference 傳送的是變量的地址而非它的值, 所以在函式中改變一個(gè)變量的值時(shí), 整個(gè)應(yīng)用 都見到這個(gè)變量的新值。一個(gè)正規(guī)變量傳送給函式的是它的值, 當(dāng)函式改變這個(gè)變量的值時(shí), 只有這個(gè)函式才見到新 值,應(yīng)用的其他局部仍然見到舊值。$myVariable = its value;Myfunction(&$myVariable); 函式可以用來在現(xiàn)正執(zhí)行的腳本中插入函式庫(kù)? 對(duì)這道題目不同的理解會(huì)有不同的答案,我的第

4、一個(gè)想法是插入 PHP 函式庫(kù)不外乎 include() 、 include_once() 、require() 、require_once() ,但細(xì)心再想,“函式庫(kù)也應(yīng) 該包括 com 物件和 函式庫(kù),所以我們的答案也要分別包括 com_load 和 dotnet_load , 下次有人提起“函式庫(kù)的時(shí)候,別忘記這兩個(gè)函式。() 與 foo() 有什么分別?foo() 會(huì)執(zhí)行這個(gè)函式,任何解譯錯(cuò)誤、語(yǔ)法錯(cuò)誤、執(zhí)行錯(cuò)誤都會(huì)在頁(yè)面上顯示出來。foo() 在執(zhí)行這個(gè)函式時(shí),會(huì)隱藏所有上述的錯(cuò)誤訊息。 很多應(yīng)用程式都使用 mysql_connect() 和 mysql_query 來隱藏 mysq

5、l 的錯(cuò)誤訊息,我 認(rèn)為這是很嚴(yán)重的失誤,因?yàn)殄e(cuò)誤不該被隱藏,你必須妥善處理它們,可能的話解決它們。7. 你如何替 PHP 的應(yīng)用程式偵錯(cuò)?我并不常這樣做,我曾經(jīng)試過很多不同的偵錯(cuò)工具,在 Linux 系統(tǒng)中設(shè)定這些工具一點(diǎn)也 不容易。不過以下我會(huì)介紹一個(gè)近來頗受注目的偵錯(cuò)工具。PHP - Advanced PHP Debugger 或稱 PHP - APD ,第一步是執(zhí)行以下的指令安裝:pear install apd安裝后在你的腳本的開頭位置參加以下的語(yǔ)句開始進(jìn)行偵錯(cuò):apd_set_pprof_trace(); 執(zhí)行完畢,翻開以下檔案來查閱執(zhí)行日志: 你也可以使用 pprofp 來格式化

6、日志。詳細(xì)的資料可以參閱 。8. “ =是什么試舉一個(gè)“ =是真但“ =是假的例子。 “=是給既可以送回布爾值“假,也可以送回一個(gè)不是布爾值但卻可以賦與“假值 的函式, strpos() 和 strrpos() 便是其中兩個(gè)例子。問題的第二部份有點(diǎn)困難,想一個(gè)“ =是假,但是“ =是真的例子卻很容易,相反的 例子卻很少。但我終于找到以下的例子:if (strpos(abc, a) = true)9. 你會(huì)如何定義一個(gè)沒有成員函式或特性的類別 myclass ?class myclass10. 你如何產(chǎn)生一個(gè) myclass 的物件?$obj = new myclass();11. 在一個(gè)類別內(nèi)

7、如何存取這個(gè)類別的特性及變改它的值? 使用語(yǔ)句: $this-propertyName ,例如: class myclass private $propertyName; public function_construct() $this-propertyName = value; 和 include_once 有什么分別 require 又如何?三者都是用來在腳本中插入其他檔案,視乎 url_allow_fopen 是否核準(zhǔn),這個(gè)檔案可以從 系統(tǒng)內(nèi)部或外部取得。但他們之間也有微細(xì)的分別:include() :這個(gè)函式容許你在腳本中把同一個(gè)檔案插入屢次,假設(shè)果檔案不存在,它會(huì)發(fā)出 系統(tǒng)警告并繼

8、續(xù)執(zhí)行腳本。include_once() :它跟 include() 的功能相似,正如它的名字所示,在腳本的執(zhí)行期間, 有關(guān)檔案只會(huì)被插入一次。require() :跟 include()差不多, 它也是用來在腳本中插入其他檔案, 但假設(shè)果檔案不存在,它會(huì)發(fā)出系統(tǒng)警告,這個(gè)警告會(huì)引致致命錯(cuò)誤令腳本中止執(zhí)行13. 以下哪一個(gè)函式可以把瀏覽器轉(zhuǎn)向到另一個(gè)頁(yè)面?redir()這不是一個(gè) PHP 函式,會(huì)引致執(zhí)行錯(cuò)誤。header()這個(gè)是正確答案, header() 用來插入卷頭資料,可以用來使瀏覽器轉(zhuǎn)向到另一個(gè)頁(yè)面,例 如:header(Location: );location()這不是一個(gè) PH

9、P 函式,會(huì)引致執(zhí)行錯(cuò)誤。redirect()這不是一個(gè) PHP 函式,會(huì)引致執(zhí)行錯(cuò)誤。14. 以下哪一個(gè)函式可以用來開啟檔案以便讀寫?fget()這不是一個(gè) PHP 函式,會(huì)引致執(zhí)行錯(cuò)誤。file_open()這不是一個(gè) PHP 函式,會(huì)引致執(zhí)行錯(cuò)誤。fopen()這是正確答案, fopen() 可以用來開啟檔案以便讀寫, 事實(shí)上這個(gè)函式還有很多項(xiàng)選擇項(xiàng), 詳 細(xì)資料請(qǐng)參閱 。open_file()這不是一個(gè) PHP 函式,會(huì)引致執(zhí)行錯(cuò)誤。() 和 mysql_fetch_array() 有什么分別?mysql_fetch_row() 把數(shù)據(jù)庫(kù)的一列儲(chǔ)存在一個(gè)以零為基數(shù)的陣列中, 第一欄在陣

10、列的索引 0,第二欄在索引 1 ,如此類推。 mysql_fetch_assoc() 把數(shù)據(jù)庫(kù)的一列儲(chǔ)存在一個(gè)關(guān)聯(lián)陣 列中,陣列的索引就是欄位名稱, 例如我的數(shù)據(jù)庫(kù)查詢送回“ first_name 、 “l(fā)ast_name 、 “ email 三個(gè)欄位,陣列的索引便是“ first_name 、“ last_name 和“ email 。 mysql_fetch_array() 可以同時(shí)送回 mysql_fetch_row() 和 mysql_fetch_assoc() 的值。16. 下面的代碼用來做什么請(qǐng)解釋。$date=08/26/2003;print ereg_replace(0-9+)

11、/(0-9+)/(0-9+), url=,$date 2/1/3,$date /url);這是把一個(gè)日期從 MM/DD/YYYY的格式轉(zhuǎn)為DD/MM/YYYY格式。我的一個(gè)好朋友告訴我可以 把這個(gè)正規(guī)表達(dá)式拆解為以下的語(yǔ)句, 對(duì)于如此簡(jiǎn)單的表示是來說其實(shí)無須拆解, 純粹為了 解說的方便:(0-9+)/;(0-9+); 至于 url= 那么是用來對(duì)應(yīng)括號(hào),第一個(gè)括號(hào)對(duì)的是月份,第二個(gè)括號(hào)對(duì)應(yīng)的是日期,第三個(gè)括號(hào)對(duì)應(yīng)的是年份。17. 給你一行文字 $string ,你會(huì)如何編寫一個(gè)正規(guī)表達(dá)式, 把 $string 內(nèi)的 HTML 標(biāo)簽除 去?首先, PHP 有內(nèi)建函式 strip_tags() 除

12、去 HTML 標(biāo)簽,為何要自行編寫正規(guī)表達(dá)式好了, 便當(dāng)作是面試的一道考題吧,我會(huì)這樣答復(fù):$stringOfText = This is a test;$expression= /(.*)/;echopreg_replace($expression, url= , $stringOfText);如何利用 PHP 解決 HTTP 的無狀態(tài)本質(zhì)?最主要的倆各選擇是 session 和 cookie 。使用 session 的方法是在每一頁(yè)的開始加上 session_start() ,然后利用 $_SESSION 散列表來儲(chǔ)存 session 變量。至于 cookie 你只 需記著一個(gè)原那么:在輸

13、出任何文字之前調(diào)用 set_cookie() 函式,此外只需使用 $_COOKIE 散列表便可以存取所有 cookie 變量。還有一個(gè)不那么可靠的方法,就是利用訪客的 IP 地址,這個(gè)方法有特定的危險(xiǎn)性。函式庫(kù)用來做什么?這個(gè)可能是我最喜歡的函式庫(kù),自從 PHP 版本后 GD 便內(nèi)建在 PHP 系統(tǒng)中。這個(gè)函式庫(kù) 讓你處理和顯示各式格式的圖檔,它的另一個(gè)常見用途是制作所圖檔。GD 以外的另一個(gè)選擇是 ImageMagick ,但這個(gè)函式庫(kù)并不內(nèi)建于 PHP 之中,必須由系統(tǒng)管理員安裝在伺服器 上。21.試寫出幾個(gè)輸出一段 HTML 代碼的方法。嗯,你可以使用 PHP 中任何一種輸出語(yǔ)句,包括

14、echo 、 print 、printf ,大局部人都使用你也可以使用這種方法:如下例的 echo :echo My string $variable;echo ENDThis text is written to the screen as output and this $variable is parsed too. If you wanted you can have HTML tags in here as well. The END; remarks must be on a line of its own, and cant contain any extra white ;比

15、Perl 好嗎請(qǐng)討論。我們不要為一個(gè)簡(jiǎn)單的問題引發(fā)一場(chǎng)舌戰(zhàn), 正如我經(jīng)常說的: “為工作選擇適合的語(yǔ)言, 不 要把工作遷就語(yǔ)言。 我個(gè)人認(rèn)為 Perl 十分適合用作命令行工具, 雖然它在網(wǎng)頁(yè)應(yīng)用上也 有不錯(cuò)的表現(xiàn), 但是它的真正實(shí)力在命令行上才能充分發(fā)揮。 同樣地, PHP 雖然可以在控制 臺(tái)的環(huán)境中使用, 但是個(gè)人認(rèn)為它在網(wǎng)頁(yè)應(yīng)用上有更好的表現(xiàn),PHP 有大量專門為網(wǎng)頁(yè)應(yīng)用而設(shè)計(jì)的函式, Perl 那么似乎以命令行為設(shè)計(jì)之本。個(gè)人來說兩種語(yǔ)言我都喜歡, 在大學(xué)期間我經(jīng)常使用 Perl 、PHP 和 Java ,可惜工作上我使 用C#,但在家里我花不少時(shí)間操練PHP、Perl、Ruby 現(xiàn)正學(xué)習(xí)和Java,保持我的技能知識(shí)在最新狀態(tài)。 很多人問我 C 和 C+ 怎

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論