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