2017年8個(gè)php面試問題(真題+答案)
一個(gè),
& lt?服務(wù)器端編程語言(Professional Hypertext Preprocessor的縮寫)
echo count(strlen(" http://PHP . net ");?>。的執(zhí)行結(jié)果是什么?
答案:1
說明:count(var)用于計(jì)算數(shù)組或?qū)ο笾性氐膫€(gè)數(shù)。當(dāng)var為null或空數(shù)組時(shí),結(jié)果為0。如果var是普通變量,則返回1。通常返回var中元素或?qū)傩缘膫€(gè)數(shù)。
二、使用list()函數(shù)需要注意什么?
回答:list()是語法結(jié)構(gòu)。List($array)用于將數(shù)組中的元素快速賦值給一些變量。使用時(shí)要注意,$array必須是索引數(shù)組,索引值從0開始。
Iii .請解釋php.ini中的safe_mode打開后哪些函數(shù)會(huì)受到影響。
回答:Safe_mode是php的安全模式。打開后主要會(huì)影響系統(tǒng)操作、文件、權(quán)限設(shè)置等方法,主要用來處理webshell。
下面是一些受影響的函數(shù):ckdir,move _ uploaded _ file,chgrp,parse _ ini _ file,
chown,rmdir,copy,rename,fopen,require,highlight_file,show_source,include,symlink,link,touch,mkdir,unlink,exec,
shell_exec,pasathru,system,popen
需要注意的是,在PHP 5.3及以上版本中丟棄了safe_mode,在PHP 5.4及以上版本中完全去掉了這個(gè)特性。
4.請類比解釋POSIX風(fēng)格和Prel兼容正則表達(dá)式的主要功能
回答:
POSIX風(fēng)格:
匹配正則表達(dá)式ereg并替換ereg_replace
Prel風(fēng)格:
匹配正則表達(dá)式preg_match并替換preg_replace
Preg_match的執(zhí)行效率比ereg快,preg_replace的執(zhí)行效率比ereg_replace快。
5.如何在命令下運(yùn)行php腳本(兩種方式編寫),如何將參數(shù)傳遞給php腳本?
回答:
第一種方法:首先進(jìn)入php安裝目錄,執(zhí)行php路徑/文件名. php。
例子:php my_。服務(wù)器端編程語言(Professional Hypertext Preprocessor的縮寫)
php -f "my_。php "
第二種方式:PHP-r“PHP腳本”;(不需要添加php開始和結(jié)束字符。).
示例:PHP-r“print _ r(get _ defined _ constants());”
將參數(shù)傳遞給php腳本:
第一種方式:PHP-r“var _ dump($ argv);”- -h(注意:如果要傳遞的參數(shù)以--開頭,必須使用參數(shù)列表分隔符--才能正確傳遞參數(shù)。)
第二種方式:test.php文件代碼:#!/usr/bin/php <。?phpvar _ dump($ argv);?>。
。/test.php-h-foo (add #!/usr/bin/php,即以-開頭的參數(shù)可以直接傳遞)
6.php5中有哪些神奇的方法?請舉例說明它們的用法
回答:
1.__construct():在實(shí)例化對象時(shí)自動(dòng)調(diào)用。
2._ _ destroy():當(dāng)對象被銷毀或腳本被執(zhí)行時(shí)自動(dòng)調(diào)用。
3.__call():調(diào)用對象不存在的方法時(shí)執(zhí)行此函數(shù)。
4.__get():獲取對象不存在的屬性時(shí)執(zhí)行此函數(shù)。
5.__set():當(dāng)設(shè)置對象不存在的屬性時(shí),執(zhí)行該函數(shù)。
6.__isset():檢測對象的屬性是否存在時(shí),執(zhí)行此函數(shù)。
7.__unset():當(dāng)對象的屬性被破壞時(shí),執(zhí)行該函數(shù)。
8.__toString():該函數(shù)在對象作為字符串輸出時(shí)執(zhí)行。
9.__clone():克隆對象時(shí)執(zhí)行此功能。
10.__autoload():實(shí)例化對象時(shí),當(dāng)類不存在時(shí),執(zhí)行此函數(shù)自動(dòng)加載類。
11._ _ sleep():之前調(diào)用了serialize,它可以指定要序列化的對象屬性。
12._ 12._ _喚醒:以前調(diào)用過unserialize,它可以執(zhí)行對象初始化。
13.__set_state():調(diào)用var_export時(shí),會(huì)調(diào)用它。使用__set_state的返回值作為var_export的返回值。
14.__invoke():當(dāng)對象用作函數(shù)時(shí)執(zhí)行此方法,通常不建議這樣做。
七、簡述php的垃圾收集機(jī)制
回答:
php中的變量存儲(chǔ)在變量容器zval中,其中除了變量的類型和值之外,還包含is_ref和refcount字段。
Refcount指示指向變量的元素?cái)?shù)量,is_ref指示變量是否有別名。
如果refcount為0,則回收變量容器。如果zval的refcount在減去1后大于0,它將進(jìn)入垃圾緩沖區(qū)。
當(dāng)緩沖區(qū)達(dá)到最大值時(shí),恢復(fù)算法會(huì)循環(huán)通過zval判斷是否是垃圾并釋放。
在這個(gè)問題上,
http://blog.csdn.net/niluchen/article/details/9468365
還有更詳細(xì)的解釋!
七、用php實(shí)現(xiàn)雙向隊(duì)列
排隊(duì)是一種線性表,它是按照先進(jìn)先出的原則進(jìn)行的
單向隊(duì)列:只能從頭到尾
雙向隊(duì)列:首尾可以進(jìn)出
class DuiLie {
private $ array = array();//declare 空數(shù)組
公共函數(shù)setFirst($item){
return array _ unshift($ this->;array,$ item);//進(jìn)入列中
}
公共函數(shù)delFirst(){
return array _ shift($ this->;數(shù)組);//出發(fā)
}
公共函數(shù)setLast($item){
return array _ push($ this->;array,$ item);//進(jìn)入列尾
}
公共函數(shù)delLast(){
return array _ pop($ this->;array,$ item);//尾出
}
公共函數(shù)show(){
var _ dump($ this->;數(shù)組);//打印數(shù)組
}
公共函數(shù)Del(){
未設(shè)置($ this->;數(shù)組);//clear 空數(shù)組
}
}
1.《php面試題 2017年8道PHP面試題(真題+答案)》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《php面試題 2017年8道PHP面試題(真題+答案)》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進(jìn)行證實(shí),對其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。
3.文章轉(zhuǎn)載時(shí)請保留本站內(nèi)容來源地址,http://f99ss.com/tiyu/1216603.html