搜尋
首頁後端開發php教程PHP面試總結分享

PHP面試總結分享

May 15, 2018 pm 02:08 PM
php分享總結

本文主要和大家分享PHP面試總結,希望能幫助大家。

相關推薦:《2019年PHP面試題大匯總(收藏)

1:变量的传值与引用。
2:变量的类型转换和判断类型方法。
3:php运算符优先级,一般是写出运算符的运算结果。
4:PHP中函数传参,闭包,判断输出的echo,print是不是函数等。
5:PHP数组,数组函数,数组遍历,预定义数组(面试必出)。
6:PHP面向对象,魔术方法,封装、继承、多态。设计模式,包括(单利、工厂、迭代器、装饰、命令、策略)。
7:正则表达式,每个标号含义,邮箱、网址、标签匹配,正则函数(面试必出)。
8:PHP异常处理(级别,错误日志,控制错误输出)(面试必出)。
9:PHP时间函数,日期计算函数。
10:文件系统,记录日志、目录、文件的遍历、上传、多方法得到文件扩展名、文件引用方式、引用函数区别。(面试必出)。
11:会话控制,主要说原理。session与cookie在分布式应用中出现问题的解决方案。
12:PHP模板引擎,常用模板引擎特点,MVC好与不好的地方。
13:PHP安全处理,过滤函数。
14:XML的使用。
15:PHP字符串的处理,包括转义(安全)、编码、截取、定位、与数组间的转换、处理函数等。(面试必出)。
16:Socket编程,各种协议,head头,curl参数含义。
17:网络状态码含义,常用(204,304, 404, 504,502)。
18:Apache配置文件,PHP配置文件,各个含义字段的含义。
19:网络各种攻击的名词含义(SQL攻击、XSS、CSRF、DDos),防止措施。
20:url的处理函数,得到url指定的部分。

Mysql基礎

1:基础sql语句书写(一般让写关联和子查询语句)
2:索引的创建,优缺点,最左原则
3:存储引擎,常用的几个,优缺点,差别,原理(面试必出)4:sql注入的处理方法
5:mysql处理函数(PHP中封装的)
6:PDO的使用方法,为什么使用
7:mysql的优化,表拆分等
8:事务处理,sql语句的处理效率等
9:数据表字段的类型,同类型间的区别,改如何选取,int(10)与int(11)的区别等。
10:数据库索引使用的那种数据结构,画出数据结构

Linux

1:常用命令的使用,vim编辑器的使用。
2:进程,cpu等信息的查看命令。
3:文件内查看命令(主要涉及统计信息)。
4:Shell的使用,命令操作。
5:awk的用法
6:shell杀掉所有的php-fpm进程

NoSql

1:Redis的应用场景,结合微博业务说出他的具体应用。
2:Redis与MC支持数据的不同点,两者都支持哪些数据结构的存储,写越多越好。
3:Redis持久化存储的原理,与Mysql的应用区别。怎样保持持久化数据与内存数据同步的关系(Redis同步机制)
4:Redis与MC在并发状态下的性能比较。
5:MC的内存管理机制,当一个数据需要存储的时候怎样分配内存空间
6:Redis的内存管理机制,与MC有哪些不同点。

開發環境

1:PHP7中的新特性与废弃的特性
2:为什么要使用PHP7,PHP7快在哪里
3:PHP7中对异常和错误的理解

版本控制

1:git的使用命令,例如:写出版本回退命令。
2:git与svn的区别。
3:如何进行多分支开发,包括多人开发协同,分段测试,上线。

 下面給大家附上一張知識點導圖,幫助大家記憶:

PHP面試總結分享

#PHP部分

1、HTTP Keep-Alive的作用

2、php陣列函數常見的那些? (array_merge、in_array的作用)

3、PHP中幾個輸出函數echo,print(),print_r(),sprintf(),var_dump()的區別

4、不用新變數直接交換現有兩個變數的值

5、heredoc

6、寫個函數來解決多執行緒同時讀寫一個檔案的問題。

7、禁掉cookie的session使用方案,設定session過期的方法,對應函數

8、json格式資料有哪些特點

9、php取得檔案內容的方法,對應的函數

10、php魔術方法與魔術常數

11、PHP 如何取得客戶端的IP位址

12、寫一個函數,可以遍歷文件夾下的所有文件和資料夾。

13、有mail.log的一個文檔,內容為若干郵件地址,用’\n’分隔換行。挑選sina.com的地址。

14、PHP快取技術有哪些?tp是局部還是完全快取?

15、strlen()與mb_strlen的作用與差異

##16、寫一個函數,盡可能高效的從一個標準url中取出擴展名

17、php.ini 中safe mod關閉會影響哪些函數和參數,至少寫6個?

18、  約瑟夫環問題

19、Isset() 、empty()與is_null的區別

20、求兩個檔案的相對路徑

21、MVC的優缺點

22、Session與cookie的聯繫與區別(運行機制),session共享問題解決方案

23、正規表示式

#24 、寫一個函數得到header頭資訊

MySQL部分

 1、select * from table where (ID = 10)  or (ID = 32) or (ID = 22)  讓結果按10 , 32, 22的順序檢索出來?

Linux部分


1、Core檔案是什麼,有什麼用?

2、共享記憶體除了檔案映射還有什麼方式?

3、請解釋下列10個shell指令的用途

4、Linux檔案屬性有哪些? (共十位)

5、Linux查詢指令

伺服器部分

1、Apache與Nginx的優缺點比較 

2、Cgi 與fastcgi的區別

3、Select, poll和epoll的區別

4、Memcache和Redis區別

 --------------- ---------------------PHP部分------------------------------------------ ----------

php部分我是按照面試常問的問題總結的,下面的問題在面試中出場率很高。問題比較基礎

1、HTTP Keep-Alive的作用


作用:Keep-Alive:使客戶端到伺服器端的連線持續有效,當出現對伺服器的後繼請求時,Keep-Alive功能避免了建立或重新建立連線。 Web伺服器,基本上都支援HTTP Keep-Alive。

缺點:對於提供靜態內容的網站來說,這個功能通常很有用。但是,對於負擔較重的網站來說,雖然為客戶保留打開的連 接有一定的好處,但它同樣影響了性能,因為在處理暫停期間,本來可以釋放的資源仍舊被佔用。當Web伺服器和應用程式伺服器在同一台機器上運作時,Keep- Alive功能對資源利用的影響尤其突出。

解決:Keep-Alive: timeout=5, max=100

timeout:過期時間5秒(對應httpd.conf裡的參數是:KeepAliveTimeout),max是最多一百次請求,強制斷掉連接。就是在timeout時間內又有新的連接過來,同時max會自動減1,直到為0,強制斷掉。

2、php陣列函數常見的那些? (array_merge、in_array的作用)

     PHP中以array_開頭的陣列函數有哪些,並說出使用方法(至少6個)

一、陣列遍歷函數


1 list();  //不是真正的函数,而是PHP的语言结构,用于给一组变量赋值,仅能用于索引数组2 each();  //返回数组当前元素的键值对,并将指针移动到下一个元素位置3 while(); //可配合list或each使用:while(list($key, $value) = each($arr)){each $key, $value; }
二、陣列內部指標控制


1 current();  //读取指针位置的内容2 key();      //读取当前指针指向内容的索引值3 next();     //将数组中的内部指针指向下一单元4 prev();     //将数组内部指针倒回一位5 end();      //将数组内部指针指向最后一个元素6 reset();    //将目前指针指向第一个索引位置
三、陣列鍵值運算子


PHP面試總結分享

PHP面試總結分享

PHP面試總結分享

PHP面試總結分享

############################################# #########
1 array_values($arr);       //获得数组的值2 array_keys($arr);         //获得数组的键名3 array_flip($arr);         //数组中的值与键名互换(如果有重复前面的会被后面的覆盖)4 array_search('PHP',$arr); //检索给定的值,加true则是严格类型检查5 array_reverse($arr);      //将数组中的元素翻转(前后顺序)6 in_array("apple", $arr);  //在数组中检索apple7 array_key_exists("apple", $arr); // 检索给定的键名是否存在数组中8 array_count_values($arr);        // 统计数组中所有值出现的次数
9 array_unique($arr);              // 删除数组中重复的值
############四、陣列回呼函數###
1 array_filter(); //使用回调函数过滤数组中的元素,如果回调返回true则当前的元素被包含到返回数组中2 array_walk();   //回调函数处理数组,自定义函数要有两个参数,本函数第三个参数可以作为回调第三个参数返回3 array_map();    //可以处理多个数组,每个数组的长度应该相同,传入数组的个数和回调函数参数个数应该一致
###二、陣列的分段與填滿###
1 array_slice($arr, 0, 3);    //将数组中的一段取出,此函数忽略键名(数组的分段)2 array_splice($arr, 0, 3,array("black","maroon"));    //将数组中的一段取出,返回的序列从原数组中删除3 array_chunk($arr, 3, TRUE);   //将一个数组分割成多个,TRUE为保留原数组的键名(分割多个数组)
###四、數組與棧,列隊###
1 array_push($arr, "apple", "pear");    //将一个或多个元素压入数组栈的末尾(入栈),返回入栈元素的个数2 array_pop($arr);    // 将数组栈的最后一个元素弹出(出栈)3 array_shift($arr);   //数组中第一个元素移出并返回(长度减1,其他元素向前移动一位,数字键名改为从零计数,文字键名不变)4 array_unshift($arr,"a",array(1,2));  //在数组的开头插入一个或多个元素
###六、數組的排序#############
1 sort($arr);      //由小到大,忽略键名2 rsort($arr);     //由大到小,忽略键名
3 asort($arr);     //由小到大,保留键名4 arsort($arr);    //由大到小,保留键名
5 ksort($arr);     //按照键名正序排序6 krsort($arr);    //按照键名逆序排序
###########七、數組的計算## #

PHP面試總結分享

1 array_sum($arr);   //对数组内部的所有元素做求和运算(数组元素的求和)2 array_merge($arr1, $arr2); //合并两个或多个(相同字符串键名,后面覆盖前面,相同的数字键名,后面的附加到后面)3  4 array_diff($arr1, $arr2);       //返回差集结果数组   array_diff_assoc($arr1, $arr2, $arr3);  //返回差集结果数组,键名也做比较5 array_intersect($arr1, $arr2);  //返回交集结果数组    array_intersect_assoc($arr1, $arr2);   //返回交集结果数组,键名也做比较

PHP面試總結分享

八、其他的数组函数

1 array_unique($arr);   //移除数组中重复的值,新的数组中会保留原始的键名2 shuffle($arr);        // 将数组的顺序打乱

 3、PHP中几个输出函数echo,print(),print_r(),sprintf(),var_dump()的区别

1:echo:是语句不是函数,没有返回值,可输出多个变量值,不需要圆括号。不能输出数组和对象,只能打印简单类型(如int,string)。

2:print:是语句不是函数,有返回值 1 ,只能输出一个变量,不需要圆括号。不能输出数组和对象,只能打印简单类型(如int,string)。

3:print_r:是函数,可以打印复合类型,例如:stirng、int、float、array、object等,输出array时会用结构表示,而且可以通过print_r($str,true)来使print_r不输出而返回print_r处理后的值

4:printf:是函数,把文字格式化以后输出(参看C语言)

5:sprintf:是函数,跟printf相似,但不打印,而是返回格式化后的文字(该函数把格式化的字符串写写入一个变量中,而不是输出来),其    他的与printf一样。 

例如:  

1 $str = "Hello";    
2 $number = 123; 
3 $txt = sprintf("%s world. Day number %u",$str,$number);4 //输出: Hello world. Day number 123

6:var_dump():函数,输出变量的内容、类型或字符串的内容、类型、长度。常用来调试。

可以通过function_exists('函数名称')进行测试

1 var_dump(function_exists('print'));  //bool(false)2 3 var_dump(function_exists('echo'));  //bool(false)4 5 var_dump(function_exists('print_r')); //bool(true)

4、不用新变量直接交换现有两个变量的值

PHP面試總結分享

 1 1:  3     list($a, $b) = array($b, $a); 4 2: 
 5     $a = $a . $b; 5     $b = strlen( $b ); 6     $b = substr( $a, 0, (strlen($a) – $b ) ); 7     $a = substr( $a, strlen($b) ); 8  9 3:(必须用一个两个字符串都都不能出现的字符做为分隔符)10     $a = $b.','.$a ;11     $a = explode(',', $a);12     $b = $a[1];13     $a = $a[0];14 15 4:这个是当两个数都是数字的时候:16     $a = $a + $b;17     $b = $a – $b;18     $a = $a – $b;19 20 5:借助数组21     $a = array($a,$b);22     $b = $a[0];23     $a = $a[1];

PHP面試總結分享

5、heredoc

Heredoc在正规的PHP文档中和技术书籍中一般没有详细讲述。他是一种Perl风格的字符串输出技术。使用heredoc技术可以实现界面与代码的准分离,比如phpwind模板。

heredoc的语法是用”

规则如下:

1、以

2、位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在heredoc中,变量不需要用连接符 . 或 , 来拼接,比如:

1 $a=2;2 $b= <p>3、heredoc常用在输出包含大量HTML语法文档的时候。他要比传统的echo输出精炼很多,如下所示:</p><p><img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/054/025/277f1538a44b804d1a78c0539aac6687-0.gif?x-oss-process=image/resize,p_40" class="lazy" alt="PHP面試總結分享"></p><pre class="brush:php;toolbar:false"> 1 function getHtml() 2 { 3     echo ""; 4     echo "<title>Title</title>"; 5     echo "Content"; 6     echo "; 7 } 8  9 function getHtml()10 {11 echo 13       <title>Title</title>14       Content15       

以上是PHP面試總結分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
PHP和Python:解釋了不同的範例PHP和Python:解釋了不同的範例Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP和Python:深入了解他們的歷史PHP和Python:深入了解他們的歷史Apr 18, 2025 am 12:25 AM

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

在PHP和Python之間進行選擇:指南在PHP和Python之間進行選擇:指南Apr 18, 2025 am 12:24 AM

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

PHP和框架:現代化語言PHP和框架:現代化語言Apr 18, 2025 am 12:14 AM

PHP在現代化進程中仍然重要,因為它支持大量網站和應用,並通過框架適應開發需求。 1.PHP7提升了性能並引入了新功能。 2.現代框架如Laravel、Symfony和CodeIgniter簡化開發,提高代碼質量。 3.性能優化和最佳實踐進一步提升應用效率。

PHP的影響:網絡開發及以後PHP的影響:網絡開發及以後Apr 18, 2025 am 12:10 AM

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP類型提示如何起作用,包括標量類型,返回類型,聯合類型和無效類型?PHP類型提示如何起作用,包括標量類型,返回類型,聯合類型和無效類型?Apr 17, 2025 am 12:25 AM

PHP類型提示提升代碼質量和可讀性。 1)標量類型提示:自PHP7.0起,允許在函數參數中指定基本數據類型,如int、float等。 2)返回類型提示:確保函數返回值類型的一致性。 3)聯合類型提示:自PHP8.0起,允許在函數參數或返回值中指定多個類型。 4)可空類型提示:允許包含null值,處理可能返回空值的函數。

PHP如何處理對象克隆(克隆關鍵字)和__clone魔法方法?PHP如何處理對象克隆(克隆關鍵字)和__clone魔法方法?Apr 17, 2025 am 12:24 AM

PHP中使用clone關鍵字創建對象副本,並通過\_\_clone魔法方法定制克隆行為。 1.使用clone關鍵字進行淺拷貝,克隆對象的屬性但不克隆對象屬性內的對象。 2.通過\_\_clone方法可以深拷貝嵌套對象,避免淺拷貝問題。 3.注意避免克隆中的循環引用和性能問題,優化克隆操作以提高效率。

PHP與Python:用例和應用程序PHP與Python:用例和應用程序Apr 17, 2025 am 12:23 AM

PHP適用於Web開發和內容管理系統,Python適合數據科學、機器學習和自動化腳本。 1.PHP在構建快速、可擴展的網站和應用程序方面表現出色,常用於WordPress等CMS。 2.Python在數據科學和機器學習領域表現卓越,擁有豐富的庫如NumPy和TensorFlow。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中