php面試題目及答案
PHP工程師在求職面試中,提前了解面試題目及答案很重要,那么你做好面試的準(zhǔn)備了嗎?下面小編已經(jīng)為你們整理了php面試題目及答案,一起來看看吧。
php面試題目及答案一
1、foo()和@foo()之間有什么區(qū)別?
答:@foo()控制錯誤輸出
2、如何聲明一個名為”myclass”的沒有方法和屬性的類?
答:class myclass{ }
3、如何實例化一個名為”myclass”的對象?
答:new myclass()
4、你如何訪問和設(shè)置一個類的屬性?
答:$object = new myclass();
$newstr = $object->test;
$object->test = “info”;
5、mysql_fetch_row() 和mysql_fetch_array之間有什么區(qū)別?
答:mysql_fetch_row是從結(jié)果集取出1行數(shù)組,作為枚舉
mysql_fetch_array是從結(jié)果集取出一行數(shù)組作為關(guān)聯(lián)數(shù)組,或數(shù)字?jǐn)?shù)組,兩者兼得
6、下面哪個函數(shù)可以打開一個文件,以對文件進(jìn)行讀和寫操作?
(a) fget() (b) file_open() (c) fopen() (d) open_file()
答:c
7、下面的程序會輸入是否?
$num = 10;
function multiply(){
$num = $num * 10;
}
multiply();
echo $num;
?>
否,局部變量
8、JS表單彈出對話框函數(shù)是?獲得輸入焦點函數(shù)是?
答:彈出對話框: alert(),prompt(),confirm()
獲得輸入焦點 focus()
9、JS的轉(zhuǎn)向函數(shù)是?怎么引入一個外部JS文件?
答:window.location.href;
10、$a = ‘abcdef’; 請取出$a的值并打印出第一個字母?
答:echo $a{0} 或 echo substr($a,0,1)
php面試題目及答案二
1、如何使用下面的類,并解釋下面什么意思?
class test{
function Get_test($num){
$num=md5(md5($num).”En”);
return $num;
} }
雙重md5加密
$testObject = new test();
$encryption = $testObject->Get_test(“xiaotian_ls”);
2、請舉例說明在你的開發(fā)過程中用什么方法來加快頁面的加載速
答:要用到服務(wù)器資源時才打開,及時關(guān)閉服務(wù)器資源,數(shù)據(jù)庫添加索引,頁面可生成靜態(tài),圖片等大文件單獨服務(wù)器。使用代碼優(yōu)化工具啦
3、寫出一個正則表達(dá)式,過慮網(wǎng)頁上的所有JS/VBS腳本(即把script標(biāo)記及其內(nèi)容都去掉):
$script="以下內(nèi)容不顯示:alert(‘cc’);";
echo preg_replace("/].*?>.*?/si", "替換內(nèi)容", $script);
?>
4、以Apache模塊的方式安裝PHP,在文件http.conf中首先要用語句____動態(tài)裝載PHP模塊,然后再用語句____使得Apache把所有擴(kuò)展名為php的文件都作為PHP腳本處理。
答:LoadModule
php5_module
"c:/php/php5apache2.dll";AddType application/x-httpd-php .php
5、sort()、asort()、和 ksort() 有什么分別?它們分別在什么情況下使用?
sort()
根據(jù)陣列中元素的值,以英文字母順序排序,索引鍵會由 0 到 n-1 重新編號。主要是當(dāng)陣列索引鍵的值無關(guān)疼癢時用來把陣列排序。
asort()
與 sort() 一樣把陣列的元素按英文字母順序來排列,不同的是所有索引鍵都獲得保留,特別適合替聯(lián)想陣列排序。
ksort()
根據(jù)陣列中索引鍵的值,以英文字母順序排序,特別適合用于希望把索引鍵排序的聯(lián)想陣列。
6、語句include和require的區(qū)別是什么?為避免多次包含同一文件,可用(?)語句代替它們?
答:require->require是無條件包含也就是如果一個流程里加入require,無論條件成立與否都會先執(zhí)行require
include->include有返回值,而require沒有(可能因為如此require的速度比include快)
注意:包含文件不存在或者語法錯誤的時候require是致命的,include不是
7、PHP的意思?
答:PHP是一個基于服務(wù)端來創(chuàng)建動態(tài)網(wǎng)站的腳本語言,您可以用PHP和HTML生成網(wǎng)站主頁
8、談?wù)刟sp,php,jsp的優(yōu)缺點?
答:ASP全名Active Server Pages,是一個WEB服務(wù)器端的開發(fā)環(huán)境, 利用它可以產(chǎn)生和運行動態(tài)的、交互的、高性能的WEB服務(wù)應(yīng)用程序。ASP采用腳本語言VB Script(Java script)作為自己的開發(fā)語言。
PHP是一種跨平臺的服務(wù)器端的嵌入式腳本語言. 它大量地借用C,Java和Perl語言的語法, 并耦合PHP自己的特性,使WEB開發(fā)者能夠快速地寫出動態(tài)生成頁面.它支持目前絕大多數(shù)數(shù)據(jù)庫。還有一點,PHP是完全免費的,不用花錢,你可以從PHP官方站點自由下載。而且你可以不受限制地獲得源碼,甚至可以從中加進(jìn)你自己需要的特色。
JSP 是Sun公司推出的新一代站點開發(fā)語言,他完全解決了目前ASP,PHP的一個通病--腳本級執(zhí)行(據(jù)說PHP4 也已經(jīng)在Zend 的支持下,實現(xiàn)編譯運行).Sun 公司借助自己在Java 上的不凡造詣,將Java 從Java 應(yīng)用程序 和 Java Applet 之外,又有新的碩果,就是Jsp--Java Server Page。Jsp 可以在Serverlet和JavaBean的支持下,完成功能強(qiáng)大的站點程序。
三者都提供在 HTML 代碼中混合某種程序代碼、由語言引擎解釋執(zhí)行程序代碼的能力。但JSP代碼被編譯成 Servlet 并由 Java 虛擬機(jī)解釋執(zhí)行,這種編譯操作僅在對 JSP 頁面的第一次請求時發(fā)生。在 ASP 、PHP、JSP 環(huán)境下,HTML 代碼主要負(fù)責(zé)描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。普通的 HTML 頁面只依賴于 Web 服務(wù)器,而 ASP 、PHP、JSP 頁面需要附加的語言引擎分析和執(zhí)行程序代碼。程序代碼的執(zhí)行結(jié)果被重新嵌入到 HTML 代碼中,然后一起發(fā)送給瀏覽器。 ASP 、PHP、 JSP三者都是面向 Web 服務(wù)器的技術(shù),客戶端瀏覽器不需要任何附加的軟件支持。
9、 優(yōu)化MYSQL數(shù)據(jù)庫的方法
(1).選取最適用的字段屬性,應(yīng)該盡量把字段設(shè)置為NOT NULL,這樣在將來執(zhí)行查詢的時候,數(shù)據(jù)庫不用去比較NULL值。
(2).使用連接(JOIN)來代替子查詢(Sub-Queries)
(3).盡量少使用 LIKE 關(guān)鍵字和通配符
php面試題目及答案三
1.PHP里面是區(qū)分大小寫的嗎?
這是個很不好回答的問題,PHP對于系統(tǒng)函數(shù)、用戶自定義函數(shù)、類名稱等是不區(qū)分大小寫的如可以用EHCO也可以用echo調(diào)用顯示函數(shù),但對于變量名稱又是區(qū)分大小寫的,如$Name和$NAME是2個不同的變量。而對于文件名又因服務(wù)器操作系統(tǒng)而定,linux中區(qū)分,Win不區(qū)分
2.php://input和$_POST有什么區(qū)別??
$_POST 與 php://input可以取到值,$HTTP_RAW_POST_DATA 為空
$_POST 以關(guān)聯(lián)數(shù)組方式組織提交的數(shù)據(jù),并對此進(jìn)行編碼處理,如urldecode,甚至編碼轉(zhuǎn)換。
php://input 可通過輸入流以文件讀取方式取得未經(jīng)處理的POST原始數(shù)據(jù)
php://input 允許讀取 POST 的原始數(shù)據(jù)。和 $HTTP_RAW_POST_DATA 比起來,它給內(nèi)存帶來的壓力較小,并且不需要任何特殊的 php.ini 設(shè)置。php://input 不能用于 enctype="multipart/form-data"。
3.mysqli_real_connect()和mysqli_connect()有啥區(qū)別?
mysqli_real_connect()需要一個被mysqli_init()創(chuàng)建的有效對象
在連接之前可以通過mysqli_options()來設(shè)置一些選項(例如連接超時,自動提交之類)
還多了個flags來設(shè)置一些不同的選項
上述是官方對這個區(qū)別的解釋,其實說白了,就是在mysqli_connect()基礎(chǔ)上增加了一些可選項
參考:http://cn.php.net/manual/zh/mysqli.real-connect.php
4.PHP中的非靜態(tài)方法可以通過靜態(tài)調(diào)用嗎,反之呢?
其實問題是問沒有通過static定義的方法,能否通過”對象名::方法名“這樣的形式來調(diào)用。答案是會產(chǎn)生一個strict錯誤,但在會繼續(xù)執(zhí)行代碼。
反之,能否通過“對象名->方法名“的形式來調(diào)用static定義的方法?答案是不能,會出錯并中斷程序執(zhí)行。
5.PHP中,當(dāng)前腳本的名稱(不包括路徑和查詢字符串)記錄在哪個預(yù)定義變量中?而鏈接到當(dāng)前頁面的URL又記錄在哪個預(yù)定義變量中?
答:echo $_SERVER['PHP_SELF']; echo $_SERVER["HTTP_REFERER"];
6.行程序段<?php echo 8%(-2) ?>將輸出什么?
答:0
7.HTTP 1.0中,狀態(tài)碼 401 的含義是什么;如果返回“找不到文件”的提示,則可用 header 函數(shù),其語句是什么?
答:狀態(tài)碼401的含義是未授權(quán); header(“HTTP/1.0 404 Not Found”)。
8.組函數(shù) arsort 的作用是什么;語句 error_reporting(2047)的作用是什么?
答:arsort的作用是對數(shù)組進(jìn)行逆向排序并保持索引關(guān)系;All errors and warnings。
9.出一個正則表達(dá)式,過慮網(wǎng)頁上的所有JS腳本(即把標(biāo)記及其內(nèi)容都去掉)?
答:/<[^>].?>.?<//>/si
看了“php面試題目及答案”