當前位置:
首頁 > 知識 > 2017年8道PHP面試題

2017年8道PHP面試題

2017年8道php面試題(真題+答案)

一、

echo count(strlen(「http://php.net」)); ?>的執行結果是?

答案:1

講解:count(var)是用來統計數組或對象的元素個數的。當var是null或者空數組時,結果為0。如果var是普通變數,則返回1。正常情況下返回var中的元素或屬性個數。

二、使用list()函數需要注意什麼?

答案:list()是一個語法結構。List($array)是用來快速把數組中的元素賦給一些變數。使用時要注意,$array必須為一個索引數組,並且索引值從0開始。

三、請說明php.ini中的safe_mode開啟之後影響了哪些函數?

答案:Safe_mode是php的安全模式。開啟之後,主要會對系統操作、文件、許可權設置等方法產生影響,主要用來應對webshell。

以下是受到影響的一些函數: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

需要注意的是:在php5.3以上版本,safe_mode被棄用,在php5.4以上版本,則將此特性完全去除了。

四、請對POSIX風格和兼容Prel風格兩種正則表達式的主要函數進行類比說明

答案:

POSIX風格:

匹配正則表達式ereg和替換ereg_replace

Prel風格:

匹配正則表達式preg_match和替換preg_replace

Preg_match比ereg的執行效率更快,preg_replace比ereg_replace的執行效率更快。

五、如何在命令下運行php腳本(寫出兩種方式),如何向php腳本傳遞參數?

答案:

第一種方式:先進入php安裝目錄,執行php路徑/文件名.php。

例:php my_script.php

php -f "my_script.php"

第二種方式:php -r 「php腳本」;(不需要加php的開始符和結束符)。

例:php -r "print_r(get_defined_constants());"

向php腳本傳遞參數:

第一種方式:php -r "var_dump($argv);" -- -h (注意:如果要傳遞的參數開頭為-,那麼得使用參數列表分隔符 -- 才能正確傳參。)

第二種方式:test.php文件代碼:#!/usr/bin/php

./test.php -h -- foo(在php文件開頭加入#!/usr/bin/php,即可直接傳遞以-為開頭得參數)

六、php5中魔術方法有哪幾個?請舉例說明各自的用法

答案:

1.__construct():實例化對象時自動調用。

2.__destruct():銷毀對象或腳本執行結束時自動調用。

3.__call():調用對象不存在得方法時執行此函數。

4.__get():獲取對象不存在的屬性時執行此函數。

5.__set():設置對象不存在的屬性時執行此函數。

6.__isset(): 檢測對象的某個屬性是否存在時執行此函數。

7.__unset():銷毀對象的某個屬性時執行此函數。

8.__toString():將對象當作字元串輸出時執行此函數。

9.__clone():克隆對象時執行此函數。

10.__autoload():實例化對象時,當類不存在時,執行此函數自動載入類。

11.__sleep():serialize之前被調用,可以指定要序列化的對象屬性。

12.__wakeup:unserialize之前被調用,可以執行對象的初始化工作。

13.__set_state():調用var_export時,被調用。用__set_state的返回值做為var_export的返回值。

14.__invoke():將對象當作函數來使用時執行此方法,通常不推薦這樣做。

七、簡述php的垃圾收集機制

答案:

php中的變數存儲在變數容器zval中,zval中除了存儲變數類型和值外,還有is_ref和refcount欄位。

refcount表示指向變數的元素個數,is_ref表示變數是否有別名。

如果refcount為0時,就回收該變數容器。如果一個zval的refcount減1之後大於0,它就會進入垃圾緩衝區。

當緩衝區達到最大值後,回收演算法會循環遍歷zval,判斷其是否為垃圾,並進行釋放處理。

關於此問題

http://blog.csdn.net/niluchen/article/details/9468365

有更為詳細的講解!

七、用php實現一個雙向隊列

隊列是一種線性表,按照先進先出的原則進行

單向隊列:只能從頭進,從尾出

雙向隊列:頭尾都可以進出

class DuiLie {

private $array = array();//聲明空數組

public function setFirst($item){

return array_unshift($this->array,$item);//頭入列

}

public function delFirst(){

return array_shift($this->array);//頭出列

}

public function setLast($item){

return array_push($this->array,$item);//尾入列

}

public function delLast(){

return array_pop($this->array,$item);//尾出列

}

public function show(){

var_dump($this->array);//列印數組

}

public function Del(){

unset($this->array);//清空數組

}

}

文章來源:

http://www.cnblogs.com/pentacles/p/6441525.html

點擊展開全文

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 優才學院 的精彩文章:

致老爸老媽:這個暑假,我要學編程
JavaScript中的數據結構——棧和隊列
哪類程序員在京買房有希望
PHP+MySql實現後台數據的讀取
HTML 自定義元素教程

TAG:優才學院 |

您可能感興趣

2017年國產動漫IP TOP20
2017年度新番TOP10個人向
2017年珠海GDP2564.73億元
天正建築2017支持32位AutoCAD2007-2016以及64位AutoCAD2010-2017平台
2017年NAND Flash存儲密度1620億GB當量,2018年將增加30%
2017年IPO白皮書和2018年IPO趨勢洞察
2017年iPhone X賣出4500萬台 超過1000萬片面板庫存轉到今年
2017年東莞GDP為7582.12億元,比上年增長8.1%
2017年長三角26市的GDP為165194億元
2017年度TOP100電影榜解讀
2017年度公有雲提供商TOP50
重點!5月1日起實施的國家標準GB/T 34990-2017解讀
2017年凈利潤暴增310.1% SUMCO:今年12英寸硅晶圓將漲價20%
2017年度最佳設計項目Part1-5
小米遞IPO申請2017年虧了439億
2017年度NLP領域論文TOP10
Wohlers 2018:2017年全球金屬3D印表機銷量為1768台,上升80%
2017年iPhone銷量低於2016年
2017年度歐美劇集TOP10
IDC:2017年Q4蘋果市場份額19.2%高居首位