PHP經(jīng)典面試題集錦
職場PHP經(jīng)典面試題集錦
PHP是一種 HTML 內(nèi)嵌式的語言,是一種在服務器端執(zhí)行的嵌入HTML文檔的腳本語言,語言的風格有類似于C語言,被廣泛地運用。以下是小編為大家搜索整理的PHP經(jīng)典面試題集錦,希望能給大家?guī)韼椭?
PHP經(jīng)典面試題集錦
1. 求$a的值
復制代碼代碼如下:
$a = "hello";
$b = &$a;
unset($b);
$b = "world";
echo $a;
2. 求$b的值
復制代碼代碼如下:
$a = 1;
$x = &$a;
$b = $a++;
echo $b;
3. 寫出一個函數(shù)實現(xiàn) 刪除指定目錄包括其下的所有子目錄以及文件
4. 寫一個函數(shù),算出兩個文件的相對路徑,如:
$a = '/a/b/c/d/e.php';
$b = '/a/b/12/34/c.php';
javascript 基礎(chǔ)知識部分
1. 談談js實現(xiàn)繼承的幾種方式,并寫出demo
2. 談談你熟悉的js框架,并實現(xiàn)下面DOM元素的獲取
要求找到drag="true" 并且 index="1" 或 無index屬性的div
提示: 如果不能一次寫出,請完成下來步驟
1. 找到drag="true" 并且 index="1"
2. 找到drag="true" 并且 無index屬性的
3. 將二者聯(lián)立起來得到
3. 實現(xiàn)一個遮罩層效果,要求要顯示的元素在頁面上居中顯示
4. 閉包知識考察
復制代碼代碼如下:
function step(a){
return function(x){
return x+a++;
}
}
var a = step(10);
var b = step(20);
alert(a(10));
alert(b(20));
var a="123abc";
alert(typeof(a++));
alert(a);
MySQL 知識部分
1. 某內(nèi)容管理系統(tǒng)中,表message有如下字段
id 文章id
title 文章標題
content 文章內(nèi)容
category_id 文章分類id
hits 點擊量
創(chuàng)建上表,寫出MySQL語句
2. 同樣上述內(nèi)容管理系統(tǒng):表comment記錄用戶回復內(nèi)容,字段如下
comment_id 回復id
id 文章id,關(guān)聯(lián)message表中的id
comment_content 回復內(nèi)容
現(xiàn)通過查詢數(shù)據(jù)庫需要得到以下格式的文章標題列表,并按照回復數(shù)量排序,回復最高的排在最前面
文章id 文章標題 點擊量 回復數(shù)量
用一個SQL語句完成上述查詢,如果文章沒有回復則回復數(shù)量顯示為0
3. 上述內(nèi)容管理系統(tǒng),表category保存分類信息,字段如下
category_id int(4) not null auto_increment;
categroy_name varchar(40) not null;
用戶輸入文章時,通過選擇下拉菜單選定文章分類
寫出如何實現(xiàn)這個下拉菜單[可使用PHP,JAVASCRIPT,HTML]
Mysql 知識擴展部分
4. 系統(tǒng)需要對分類表進行擴展,使它能支持無限級別分類,請設計這個表結(jié)構(gòu),并根據(jù)你的設計完成下述場景
1. 查找隸屬指定分類下的所有文章(包含子分類下的所有文章)
2. 查找指定文章的分類到根分類的層級,比如:
文章"Mysql優(yōu)化心得" 它對應在 "程序設計/Mysql/運維/" 下
3. 刪除分類時要求也能刪除其下所有子分類
5. 系統(tǒng)需要對文章增加標簽功能,(標簽與文章是多對多的關(guān)系),用于實現(xiàn)"相關(guān)文章"功能.請設計這個表結(jié)構(gòu),
并根據(jù)你的設計完成下述場景.
1. 查找 與指定文章最相近的五篇文章 (相似度的'算法 以相同標簽的數(shù)量作為依據(jù),數(shù)量越大說明越相似)
綜合知識部分:
1. 談談你對Cookie 與 Session 的理解,它們的適用場景是什么,如有可能可闡述下在多種應用下Session如何共享的思路
2. 談談你對單點登錄的理解,比如原理與實現(xiàn),以及實現(xiàn)過程中有哪些問題需要注意
3. 談談你對MVC的理解,MVC的缺點是什么,如果讓你實現(xiàn)一個MVC框架,你想怎樣實現(xiàn)?
4. 談談你平常工作中使用過的權(quán)限管理部分,你是如何理解與實現(xiàn)的?
PHP應聘面試題
1、
echo -10%3;
?>
答案:-1。
考查:優(yōu)先級。
因為-的優(yōu)先級比%求余的優(yōu)先級低,也就是-(10%3)。
2、print (int)pow(2,32);
答案:0
3、//file1.php
$a = '123';
?>
//file2.php
echo include('file1.php');
?>
答案:1.
考查:返回值。
因include()也是一個函數(shù),有返回值。在成功時返回1,失敗時返回錯誤信息。如果被包含的文件有return,則inculde()成功時返回該文件的返回值。
4、
$count = 5;
function get_count() {
static $count = 0;
return $count++;
}
++$count;
get_count();
echo get_count();
?>
答案:1.
考查:static和++。
因static $count,所以只在第一次調(diào)用get_count的時候?qū)?count賦值為0,第二次再進來這個函數(shù),則不會第二次賦值。其次就是return $count++和return ++$count了,前者先返回,后者先++再返回。
5、
$arr = array(0 =>1,'aa' => 2,3,4);
foreach($arr as $key => $val){
print($key == 'aa' ? 5 : $val);
}
?>
答案:5534.
考查:類型轉(zhuǎn)換。
因遍歷數(shù)組第一次的時候,$key和aa的比較實際就是0和aa的比較,一個是int一個
PHP語言常用的面試題
一.用PHP打印出前一天的時間格式是:
YYYY-MM-DD HH:II:SS
echo date(“Y-m-d H:i:s”, time()-24__3600);
二.echo(),print(),print_ r()的區(qū)別:
echo是PHP語句, print和print_ r是函數(shù),語句沒有返回值,函數(shù)可以有返回值(即便沒有用)
print( )只能打印出簡單類型變量的值(如int, string)
print_ r( )可以打印出復雜類型變量的值(如數(shù)組,對象)
三.MYSQL取得當前時間的函數(shù)是?格式化日期的函數(shù)是:
now() DATE_FORMAT(date , format)
select now();
select curdate();
select curtime();
四.對于大流量的網(wǎng)站,您采用什么樣的方法來解決訪問量問題?
可以根據(jù)需要以下方法
1、PHP緩存
2、生成html靜態(tài)頁面
3、使用主從數(shù)據(jù)庫,把數(shù)據(jù)庫的讀寫分開
4、使用負載均衡器和多臺服務器
五.用pHp寫出顯示客戶端Ip與服務器Ip的代碼:
客戶端Ip: echo $_SERVER[‘REMOTE_ADDR’]; 或者: getenv('REMOTE_ADDR');
服務器Ip:
客戶端Ip: echo $_SERVER[‘REMOTE_ADDR’]; 或者: getenv('REMOTE_ADDR');
服務器Ip:
程序代碼
$serverIp=gethostbynamel(webpro01);
echo Server Ip Address:
;
for ($i=0; $i
echo
.$netscapeftp[$i];
}
echo
;
六.語句include和require的區(qū)別是什么?為避免多次包含同一文件,可用(?)語句代替它們?
1、pHp程序執(zhí)行到require()時,只會讀取一次檔案,故常放在程序開頭,檔案引入后pHp會將網(wǎng)頁檔重新編譯,讓引入檔成為原先網(wǎng)頁的一部分。
2、pHp程序執(zhí)行到include()時,每次皆會讀取檔案,故常用于流程控制的區(qū)段,如條件判斷或循環(huán)中。
3、require() :如果文件不存在,會報出一個fatal error.腳本停止執(zhí)行
4、include() : 如果文件不存在,會給出一個 warning,但腳本會繼續(xù)執(zhí)行
5、推薦使用require_once()和include_once(),可以檢測文件是否有重復包含。
七.如何修改SESSION的生存時間.
方法一:
將php.ini 中session.gc_maxlifetime 設置為 9999(默認為 1440)重啟 apache 即可
方法二:
$savepath = .'session_save_dir';
$lifeTime = 24 __ 3600;
session_save_path($savepath);
session_set_cookie_params($lifeTime);
session_start();
方法三:
setcookie() 或session_set_cookie_params($lifeTime) 在pHp中,heredoc是一種特殊的字符串,它的結(jié)束標志必須?
八.heredoc的.語法是用<<<加上自己定義成對的標簽,在標簽范圍鵲奈淖質(zhì)游一個字符串
$str = <<
I saw a dog yesterday.
EOD;
需要注意的是:
1、<<<后面的EOD是自己定義的標簽名稱,必須要成對,而且后面要加上分號表示結(jié)束。
2、結(jié)束的標簽前面最好不要有空格,以免發(fā)生錯誤
九.在pHp中error_reporting這個函數(shù)有什么作用?
error_reporting( ) 用于設置php的偵聽錯誤的級別.[用來配置錯誤信息回報的等級].
十.檢測一個變量是否有設置的函數(shù)是?是否為空的函數(shù)是?
isset($a)empty($a)
簡答題:
1. 簡述Linux下安裝PHP的過程?
2. 簡述Linux下安裝Mysql的過程?
3. 簡述Linux下安裝apache的過程?
4. 監(jiān)視一個日志文件a.log 的最新內(nèi)容?
5. 查看當前服務器的HTTP連接有哪些?
6. 說說Linux下的find命令和grep命令的區(qū)別?
7. 如何實現(xiàn)每天0點鐘重新啟動服務器?
8. 請寫出5個常用的unix操作命令?
9. rm -rf __ 是什么意思,其中 f 有什么作用?
10. Linux壓縮文件和解壓文件的命令?
11. Linux的目錄進行遍歷,編寫shell腳本?
12. apache默認使用進程管理還是線程管理?如何判斷并設置最大連接數(shù)?
13. 當前目錄下有一個文件為 showme.sh , 如何修改文件,將其指定為使用 /bin/bash 運
行,如何修改其權(quán)限為所有用戶可讀寫,所有用戶可執(zhí)行?
14. 當前目錄下有一個文件為 showme.sh,如何修改其所有人為root?
15. 在linux 請寫出一種自動定時備份某一個文件的方法和具體實施流程,要求每天凌晨3點的時候備份一次。