學(xué)習(xí)啦 > 創(chuàng)業(yè)指南 > 職場(chǎng) > 面試題 > PHP經(jīng)典面試題集錦

PHP經(jīng)典面試題集錦

時(shí)間: 澤凡0 分享

職場(chǎng)PHP經(jīng)典面試題集錦

PHP是一種 HTML 內(nèi)嵌式的語(yǔ)言,是一種在服務(wù)器端執(zhí)行的嵌入HTML文檔的腳本語(yǔ)言,語(yǔ)言的風(fēng)格有類似于C語(yǔ)言,被廣泛地運(yùn)用。以下是小編為大家搜索整理的PHP經(jīng)典面試題集錦,希望能給大家?guī)?lái)幫助!

PHP經(jīng)典面試題集錦

PHP經(jīng)典面試題集錦

1. 求$a的值

復(fù)制代碼代碼如下:

$a = "hello";

$b = &$a;

unset($b);

$b = "world";

echo $a;

2. 求$b的值

復(fù)制代碼代碼如下:

$a = 1;

$x = &$a;

$b = $a++;

echo $b;

3. 寫出一個(gè)函數(shù)實(shí)現(xiàn) 刪除指定目錄包括其下的所有子目錄以及文件

4. 寫一個(gè)函數(shù),算出兩個(gè)文件的相對(duì)路徑,如:

$a = '/a/b/c/d/e.php';

$b = '/a/b/12/34/c.php';

javascript 基礎(chǔ)知識(shí)部分

1. 談?wù)刯s實(shí)現(xiàn)繼承的幾種方式,并寫出demo

2. 談?wù)勀闶煜さ膉s框架,并實(shí)現(xiàn)下面DOM元素的獲取

要求找到drag="true" 并且 index="1" 或 無(wú)index屬性的div

提示: 如果不能一次寫出,請(qǐng)完成下來(lái)步驟

1. 找到drag="true" 并且 index="1"

2. 找到drag="true" 并且 無(wú)index屬性的

3. 將二者聯(lián)立起來(lái)得到

3. 實(shí)現(xiàn)一個(gè)遮罩層效果,要求要顯示的元素在頁(yè)面上居中顯示

4. 閉包知識(shí)考察

復(fù)制代碼代碼如下:

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 知識(shí)部分

1. 某內(nèi)容管理系統(tǒng)中,表message有如下字段

id 文章id

title 文章標(biāo)題

content 文章內(nèi)容

category_id 文章分類id

hits 點(diǎn)擊量

創(chuàng)建上表,寫出MySQL語(yǔ)句

2. 同樣上述內(nèi)容管理系統(tǒng):表comment記錄用戶回復(fù)內(nèi)容,字段如下

comment_id 回復(fù)id

id 文章id,關(guān)聯(lián)message表中的id

comment_content 回復(fù)內(nèi)容

現(xiàn)通過(guò)查詢數(shù)據(jù)庫(kù)需要得到以下格式的文章標(biāo)題列表,并按照回復(fù)數(shù)量排序,回復(fù)最高的排在最前面

文章id 文章標(biāo)題 點(diǎn)擊量 回復(fù)數(shù)量

用一個(gè)SQL語(yǔ)句完成上述查詢,如果文章沒(méi)有回復(fù)則回復(fù)數(shù)量顯示為0

3. 上述內(nèi)容管理系統(tǒng),表category保存分類信息,字段如下

category_id int(4) not null auto_increment;

categroy_name varchar(40) not null;

用戶輸入文章時(shí),通過(guò)選擇下拉菜單選定文章分類

寫出如何實(shí)現(xiàn)這個(gè)下拉菜單[可使用PHP,JAVASCRIPT,HTML]

Mysql 知識(shí)擴(kuò)展部分

4. 系統(tǒng)需要對(duì)分類表進(jìn)行擴(kuò)展,使它能支持無(wú)限級(jí)別分類,請(qǐng)?jiān)O(shè)計(jì)這個(gè)表結(jié)構(gòu),并根據(jù)你的設(shè)計(jì)完成下述場(chǎng)景

1. 查找隸屬指定分類下的所有文章(包含子分類下的所有文章)

2. 查找指定文章的分類到根分類的層級(jí),比如:

文章"Mysql優(yōu)化心得" 它對(duì)應(yīng)在 "程序設(shè)計(jì)/Mysql/運(yùn)維/" 下

3. 刪除分類時(shí)要求也能刪除其下所有子分類

5. 系統(tǒng)需要對(duì)文章增加標(biāo)簽功能,(標(biāo)簽與文章是多對(duì)多的關(guān)系),用于實(shí)現(xiàn)"相關(guān)文章"功能.請(qǐng)?jiān)O(shè)計(jì)這個(gè)表結(jié)構(gòu),

并根據(jù)你的設(shè)計(jì)完成下述場(chǎng)景.

1. 查找 與指定文章最相近的五篇文章 (相似度的'算法 以相同標(biāo)簽的數(shù)量作為依據(jù),數(shù)量越大說(shuō)明越相似)

綜合知識(shí)部分:

1. 談?wù)勀銓?duì)Cookie 與 Session 的理解,它們的適用場(chǎng)景是什么,如有可能可闡述下在多種應(yīng)用下Session如何共享的思路

2. 談?wù)勀銓?duì)單點(diǎn)登錄的理解,比如原理與實(shí)現(xiàn),以及實(shí)現(xiàn)過(guò)程中有哪些問(wèn)題需要注意

3. 談?wù)勀銓?duì)MVC的理解,MVC的缺點(diǎn)是什么,如果讓你實(shí)現(xiàn)一個(gè)MVC框架,你想怎樣實(shí)現(xiàn)?

4. 談?wù)勀闫匠9ぷ髦惺褂眠^(guò)的權(quán)限管理部分,你是如何理解與實(shí)現(xiàn)的?

PHP應(yīng)聘面試題

1、

echo -10%3;

?>

答案:-1。

考查:優(yōu)先級(jí)。

因?yàn)?的優(yōu)先級(jí)比%求余的優(yōu)先級(jí)低,也就是-(10%3)。

2、print (int)pow(2,32);

答案:0

3、//file1.php

$a = '123';

?>

//file2.php

echo include('file1.php');

?>

答案:1.

考查:返回值。

因include()也是一個(gè)函數(shù),有返回值。在成功時(shí)返回1,失敗時(shí)返回錯(cuò)誤信息。如果被包含的文件有return,則inculde()成功時(shí)返回該文件的返回值。

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的時(shí)候?qū)?count賦值為0,第二次再進(jìn)來(lái)這個(gè)函數(shù),則不會(huì)第二次賦值。其次就是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ù)組第一次的時(shí)候,$key和aa的比較實(shí)際就是0和aa的比較,一個(gè)是int一個(gè)

PHP語(yǔ)言常用的面試題

一.用PHP打印出前一天的時(shí)間格式是:

YYYY-MM-DD HH:II:SS

echo date(“Y-m-d H:i:s”, time()-24__3600);

二.echo(),print(),print_ r()的區(qū)別:

echo是PHP語(yǔ)句, print和print_ r是函數(shù),語(yǔ)句沒(méi)有返回值,函數(shù)可以有返回值(即便沒(méi)有用)

print( )只能打印出簡(jiǎn)單類型變量的值(如int, string)

print_ r( )可以打印出復(fù)雜類型變量的值(如數(shù)組,對(duì)象)

三.MYSQL取得當(dāng)前時(shí)間的函數(shù)是?格式化日期的函數(shù)是:

now() DATE_FORMAT(date , format)

select now();

select curdate();

select curtime();

四.對(duì)于大流量的網(wǎng)站,您采用什么樣的方法來(lái)解決訪問(wèn)量問(wèn)題?

可以根據(jù)需要以下方法

1、PHP緩存

2、生成html靜態(tài)頁(yè)面

3、使用主從數(shù)據(jù)庫(kù),把數(shù)據(jù)庫(kù)的讀寫分開(kāi)

4、使用負(fù)載均衡器和多臺(tái)服務(wù)器

五.用pHp寫出顯示客戶端Ip與服務(wù)器Ip的代碼:

客戶端Ip: echo $_SERVER[‘REMOTE_ADDR’]; 或者: getenv('REMOTE_ADDR');

服務(wù)器Ip:

客戶端Ip: echo $_SERVER[‘REMOTE_ADDR’]; 或者: getenv('REMOTE_ADDR');

服務(wù)器Ip:

程序代碼

$serverIp=gethostbynamel(webpro01);

echo Server Ip Address:

;

for ($i=0; $i

echo

.$netscapeftp[$i];

}

echo

;

六.語(yǔ)句include和require的區(qū)別是什么?為避免多次包含同一文件,可用(?)語(yǔ)句代替它們?

1、pHp程序執(zhí)行到require()時(shí),只會(huì)讀取一次檔案,故常放在程序開(kāi)頭,檔案引入后pHp會(huì)將網(wǎng)頁(yè)檔重新編譯,讓引入檔成為原先網(wǎng)頁(yè)的一部分。

2、pHp程序執(zhí)行到include()時(shí),每次皆會(huì)讀取檔案,故常用于流程控制的區(qū)段,如條件判斷或循環(huán)中。

3、require() :如果文件不存在,會(huì)報(bào)出一個(gè)fatal error.腳本停止執(zhí)行

4、include() : 如果文件不存在,會(huì)給出一個(gè) warning,但腳本會(huì)繼續(xù)執(zhí)行

5、推薦使用require_once()和include_once(),可以檢測(cè)文件是否有重復(fù)包含。

七.如何修改SESSION的生存時(shí)間.

方法一:

將php.ini 中session.gc_maxlifetime 設(shè)置為 9999(默認(rèn)為 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é)束標(biāo)志必須?

八.heredoc的.語(yǔ)法是用<<<加上自己定義成對(duì)的標(biāo)簽,在標(biāo)簽范圍鵲奈淖質(zhì)游一個(gè)字符串

$str = <<

I saw a dog yesterday.

EOD;

需要注意的是:

1、<<<后面的EOD是自己定義的標(biāo)簽名稱,必須要成對(duì),而且后面要加上分號(hào)表示結(jié)束。

2、結(jié)束的標(biāo)簽前面最好不要有空格,以免發(fā)生錯(cuò)誤

九.在pHp中error_reporting這個(gè)函數(shù)有什么作用?

error_reporting( ) 用于設(shè)置php的偵聽(tīng)錯(cuò)誤的級(jí)別.[用來(lái)配置錯(cuò)誤信息回報(bào)的等級(jí)].

十.檢測(cè)一個(gè)變量是否有設(shè)置的函數(shù)是?是否為空的函數(shù)是?

isset($a)empty($a)

簡(jiǎn)答題:

1. 簡(jiǎn)述Linux下安裝PHP的過(guò)程?

2. 簡(jiǎn)述Linux下安裝Mysql的過(guò)程?

3. 簡(jiǎn)述Linux下安裝apache的過(guò)程?

4. 監(jiān)視一個(gè)日志文件a.log 的最新內(nèi)容?

5. 查看當(dāng)前服務(wù)器的HTTP連接有哪些?

6. 說(shuō)說(shuō)Linux下的find命令和grep命令的區(qū)別?

7. 如何實(shí)現(xiàn)每天0點(diǎn)鐘重新啟動(dòng)服務(wù)器?

8. 請(qǐng)寫出5個(gè)常用的unix操作命令?

9. rm -rf __ 是什么意思,其中 f 有什么作用?

10. Linux壓縮文件和解壓文件的命令?

11. Linux的目錄進(jìn)行遍歷,編寫shell腳本?

12. apache默認(rèn)使用進(jìn)程管理還是線程管理?如何判斷并設(shè)置最大連接數(shù)?

13. 當(dāng)前目錄下有一個(gè)文件為 showme.sh , 如何修改文件,將其指定為使用 /bin/bash 運(yùn)

行,如何修改其權(quán)限為所有用戶可讀寫,所有用戶可執(zhí)行?

14. 當(dāng)前目錄下有一個(gè)文件為 showme.sh,如何修改其所有人為root?

15. 在linux 請(qǐng)寫出一種自動(dòng)定時(shí)備份某一個(gè)文件的方法和具體實(shí)施流程,要求每天凌晨3點(diǎn)的時(shí)候備份一次。

1828292