php面試題
對于PHP程序員而言,面試中想要取得面試成功,那么提前了解面試題很有必要。下面小編已經為你們整理了php面試題,一起來看看吧。
php面試題一
1、給你三個數,寫程序求出其最大值。
$var1=1;
$var2=7;
$var3=8;
$max=$var1>$var2?$var1:$var2;
$max=$max>$var3?$max:$var3;
echo $max;
2、將一個選擇2號選項的ip為127.0.0.1的用戶在當前時間的投票記錄到數據庫的SQL
答:insert into poll (ip,time,iid) values('127.0.0.1',now(),2);
3、個函數驗證電子郵件的格式是否正確 ?
答:function checkEmail($email)
{
$pregEmail = "/([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?/i";
return preg_match($pregEmail,$email);
}
4、表 menu(mainmenu,submenu,url),請用遞歸法寫出一樹形菜單,將所有的menu列出來
function GenerateMenu($id=0,$str="")
{
$result=mysql_query("select mainmenu,url,submenu from menu where mainmenu=$id");
while($row=mysql_fetch_array($result))
{
echo $str.$row["url"]."
";
GenerateMenu($row["submenu"],$str."--");
}
mysql_free_result($result);
}
$link=mysql_connect("localhost","root","");
mysql_select_db("phpinterview");
GenerateMenu();
mysql_close($link)
?>
5、PHP可以和sql server/oracle等數據庫連接嗎?
答:可以
6、寫出PHP5權限控制修飾符?
答:public(公共),private(私用),protected(繼承)
7、請寫出php5的構造函數和析構函數?
答: 構造函數:官方稱自定義函數
析構函數:垃圾回收函數(__destruct)
8、表單中 get與post提交方法的區別?
答:get是發送請求HTTP協議通過url參數傳遞進行接收,而post是實體數據,可以通過表單提交大量信息.
9、session與cookie的區別?
答:session:儲存用戶訪問的全局唯一變量,存儲在服務器上的php指定的目錄中的(session_dir)的位置進行的存放
cookie:用來存儲連續訪問一個頁面時所使用,是存儲在客戶端,對于Cookie來說是存儲在用戶WIN的Temp目錄中的。
兩者都可通過時間來設置時間長短
10、用PHP打印出前一天的時間格式是2010-7-3 12:28:21?
答:echo date(‘Y-m-d H:i:s’, strtotime(‘-1 days’));
php面試題二
1、e2ho(),print(),print_r()的區別?
答:echo是PHP語句, print和print_r是函數,語句沒有返回值,函數可以有返回值(即便沒有用)
print() 只能打印出簡單類型變量的值(如int,string)
print_r() 可以打印出復雜類型變量的值(如數組,對象)
echo 輸出一個或者多個字符串
2、能夠使HTML和PHP分離開使用的模板?
答:Smarty, TinyButStrong,XTemplate, Savant,Template Lite, Dwoo, phemplate
3、哪些工具進行版本控制?
答:cvs,svn,vss;
4、如何實現字符串翻轉?
答:echo strrev($a); //strrev — 顛倒字符串
5、優化查詢語句?
a.最好在相同字段進行比較操作,在建立好的索引字段上盡量減少函數操作
例子1:
SELECT * FROM order WHERE YEAR(orderDate)<2008;(慢)
SELECT * FROM order WHERE orderDate<"2008-01-01";(快)
例子2:
SELECT * FROM order WHERE addtime/7<24;(慢)
SELECT * FROM order WHERE addtime<24*7;(快)
例子3:
SELECT * FROM order WHERE title like "%good%";
SELECT * FROM order WHERE title>=”good” and name<"good";
6、對于大流量的網站,您采用什么樣的方法來解決訪問量問題?
答:確認服務器硬件是否足夠支持當前的流量,數據庫讀寫分離,優化數據表,
程序功能規則,禁止外部的盜鏈,控制大文件的下載,使用不同主機分流主要流量
7、如何修改SESSION的生存時間?.
答:方法1:將php.ini中的session.gc_maxlifetime設置為9999重啟apache
方法2:$savePath = “./session_save_dir/”;
$lifeTime = 小時 * 秒;
session_save_path($savePath);
session_set_cookie_params($lifeTime);
session_start();
方法3:setcookie() and session_set_cookie_params($lifeTime);
8、在PHP中,heredoc是一種特殊的字符串,它的結束標志必須?
答:heredoc的語法是用”<<<"加上自己定義成對的標簽,在標簽范圍內的文字視為一個字串
例子:
$str = <<
my name is Jiang Qihui!
SHOW;
php面試題三
1、談對mvc的認識?
答:由模型(Model),視圖(View),控制器(Controller)完成的應用程序
由模型發出要實現的功能到控制器,控制器接收組織功能傳遞給視圖;
2、寫出發貼數最多的十個人名字的SQL,利用下表:members(id,username,posts,pass,email)
答:SELECT * FROM `members` ORDER BY posts DESC limit 0,10;
3、GD庫是做什么用的?
答:gd庫提供了一系列用來處理圖片的功能,使用GD庫可以處理圖片,或者生成圖片。
在網站上GD庫通常用來生成縮略圖或者用來對圖片加水印或者對網站數據生成報表。
4、請寫出數據類型(int char varchar datetime text)的意思; 請問varchar和char有什么別?
答:int是數字類型,char固定長度字符串,varchar實際長度字符串,datetime日期時間型,text文本字符串
char的場地固定為創建表設置的長度,varchar為可變長度的字符
5、以下程序的輸出結果?
$b=201;
$c=40;
$a=$b>$c?4:5;
echo $a;
?>
答:4
6、檢測一個變量是否有設置的函數是?是否為空的函數是?
答:isset($str),empty($str);
7、得查詢結果集總數的函數是?
答:mysql_num_rows($result);
8、$arr = array(‘james’, ‘tom’, ‘symfony’); 請打印出第一個元素的值?
答:echo $arr[0];
9、===”是什么?試舉一個“==”是真但“===”是假的例子。
“===”是既可以返回布爾值“假”,也可以返回一個不是布爾值但卻可以賦與“假”值的函式,strpos() 和 strrpos() 便是其中兩個例子。
if (strpos("abc", "a") == true){ // 這部分永不會被執行,因為 "a" 的位置是 0,換算成布爾值“假”}if (strpos("abc", "a") === true){ // 這部份會被執行,因為“===”保證函式 strpos() 的送回值不會換算成布爾值.}
10、以下程序的輸出結果
$str=“cd”;
$$str=“hotdog”;
$$str.=“ok”;
echo $cd;
?>
答案:hotdogok
看了“php面試題”