搜尋
首頁後端開發php教程最新的PHP經典面試題目總結(上篇)

這篇文章主要介紹了2017年最新PHP經典面試題目匯總(上篇),非常不錯,具有參考借鑒價值,需要的朋友可以參考下

1、雙引號和單引號的區別

  • 雙引號解釋變量,單引號不解釋變數

  • 雙引號裡插入單引號,其中單引號裡如果有變數的話,變數解釋

  • 雙引號的變數名後面必須要有一個非數字、字母、底線的特殊字元,或用{}講變數括起來,否則會將變數名稱後面的部分當做一個整體,造成語法錯誤

雙引號解釋轉義字符,單引號不解釋轉義字符,但是解釋'\和\\

能使單引號字符盡量使用單引號,單引號的效率比雙引號要高(因為雙引號要先遍歷一遍,判斷裡面有沒有變量,然後再進行操作,而單引號則不需要判斷)
  • 2.常用的

    超全域變數

    (8個)
  • #$_GET ----->get傳送方式

  • $POST ----->post傳送方式

  • #$REQUEST ----->可以接收到get和post兩種方式的值

  • ***

  • $GLOBALS ----->所有的變數都放在裡面

  • $FILE ----->上傳檔案使用

  • $SERVER ----->系統環境變數

    #* **
  • $SESSION ----->會話控制的時候會用到
  • $ COOKIE ----->會話控制的時候會用到
  • #3、HTTP中POST、GET、PUT、DELETE方式的差異

HTTP定義了與伺服器互動的不同的方法,最基本的是POST、GET、PUT、DELETE,與其比不可少的URL的全名是資源描述符,我們可以這樣理解: url描述了一個網路上資源,而post、get、put、delegate就是對這個資源進行增、刪、改、查的操作!

  • 3.1表單中get與post提交方式的差異

  • get是把參數資料佇列加到提交表單的action屬性所指的url中,值和表單內各個欄位一一對應,從url可以看到;post是透過HTTPPOST機制,將表單內各個欄位與其內容防止在HTML的head中一起傳送到action屬性所指的url位址,使用者看不到這個過程

  • 對於get方式,伺服器端用Request.QueryString取得變數的值,對於post方式,伺服器端用Request.Form取得提交的資料

    get傳送的資料量較小,post傳送的資料量較大,一般預設為不受限制,但在理論上,IIS4中最大量為80kb, IIS5中為1000k,
  • get安全性非常低,post安全性較高

3.2#GET請求會向資料庫發送索取資料的請求,從而來獲取信息,該請求就像資料庫的select操作一樣,只是用來

查詢

一下數據,不會修改、增加數據,不會影響資源的內容,即該請求不會產生副作用。無論進行多少次操作,結果都是一樣的。

與GET不同的是,PUT請求是向伺服器端發送資料的,從而改變訊息,該請求就像資料庫的update操作一樣,用來修改資料的內容,但是不會增加資料的種類等,也就是說無論進行多少次PUT操作,其結果並沒有不同。

POST請求

同PUT請求類似,都是向伺服器端發送資料的,但是該請求會改變資料的種類等資源,就像資料庫的insert操作一樣,會創造新的內容。幾乎目前所有的提交操作都是用POST請求的。

#########DELETE請求顧名思義,就是用來刪除某一個資源的,該請求就像資料庫的###delete操作###。 ##################4、PHP介紹############Hypertext Preprocessor----超文本預處理器##### #Personal Home Page 原始名稱######目標用途: 允許web開發人員快速編寫動態生成的web頁面,與其他頁面相比,PHP是將程式嵌入到###HTML文檔###中去執行,效率比完全生成HTML編輯的CGI高很多######HTML: Hypertext Markup Language######創始人: 拉姆斯勒·勒多夫Rasmus Lerdorf,1968年生,加拿大滑鐵盧大學## #

勒多夫最開始是為了維護個人網頁,用prel語言寫了維護程序,之後又用c進行了重寫,最終衍生出php/fi

時間軸:

  • 1995.06.08將PHP/FI公開釋出

  • 1995 php2.0,加入了對MySQL#的支援

  • 1997 php3.0

  • 2000 php4.0

  • ##2008 php5.0

  • #由於php6.0沒有完全解決Unicode編碼,所以基本上沒有生產線上的應用,基本上只是一個概念產品,很多功能已經在php5.3.3和php5.3.4上實現

  • #常見的IDE(Intergrated Development Environment): 整合開發環境

#Coda(mac)

PHPStrom
Adobe Dreamweaver
NetBeans

常見文字

編輯器,具備程式碼高亮:

NodePad++

SublimeText

PHP優勢

PHP特性:

  • php獨特地混合了C,Java,Prel以及PHP自創的語法


  • 可以比CGI或Prel更快速去執行動態網頁,與其他變成語言相比,PHP是講程式嵌入到HTML文件中去執行,執行效率比完全產生HTML編輯的CGI要高很多,所有的CGI都能實現


  • 支援幾乎所有流行的資料庫以及作業系統


  • PHP可以使用C,C++進行程式的擴充


PHP優勢:

    ##開放原始碼
  • 免費性愛
  • 快捷性
  • #跨平台強
  • ##效率高

  • 圖形處理

  • #物件導向

  • 專業專注

    PHP技術應用程式:
  • # 靜態頁面產生

  • 資料庫快取

  • 過程快取

    #p+css
  • w3c
  • 標準

  • 大負載

  • 分散式

  • #flex

    ##支援

  • ## MVC

  • Smarty模組引擎

PHP認證等級


初級IFE:Index Front Engineer 前端工程師

中級IPE:Index PHP Engineer PHP工程師

高級IAE:Index Architecture Engineer 架構工程師

#6、echo、print_r、 print、var_dump之間的差異

* echo、print是php语句,var_dump和print_r是函数
* echo 输出一个或多个字符串,中间以逗号隔开,没有返回值是语言结构而不是真正的函数,因此不能作为表达式的一部分使用
* print也是php的一个关键字,有返回值 只能打印出简单类型变量的值(如int,string),如果字符串显示成功则返回true,否则返回false
* print_r 可以打印出复杂类型变量的值(如数组、对象)以列表的形式显示,并以array、object开头,但print_r输出布尔值和NULL的结果没有意义,因为都是打印"\n",因此var_dump()函数更适合调试
* var_dump() 判断一个变量的类型和长度,并输出变量的数值
#7、HTTP狀態碼

##點擊這兒查看HTTP狀態碼詳解

常見的HTTP狀態碼:

200 - 請求成功
301 - 資源(網頁等)被永久轉義到其他URL
404 -請求的資源(網頁等)不存在

505 - 內部伺服器錯誤

HTTP狀態碼分類:

1** - 訊息,伺服器收到的請求,需要請求者繼續執行動作
2** - 成功,操作被成功接收並處理
3** - 重定向,需要進一步的操作以完成請求
4** - 客戶端錯誤,請求包含語法錯誤或無法完成請求
5** 伺服器錯誤,伺服器在處理請求的過程

中發生了錯誤

8、什麼是魔術引號

魔術引號是一個將自動將進入PHP腳本的資料進行轉義的過程,最好在編碼時不要轉義而在運行時根據需要而轉義9、如何取得客戶端的ip(要求取得一個int)和伺服器ip的程式碼



客戶端:$_SERVER["REMOTE_ADDR"];或者getenv('REMOTE_ADDR')

ip2long進行轉換

伺服器端:gethostbyname('www.baidu.com')10、使用那些工具進行版本控制

cvs、svn、vss、

git

#11、最佳化資料庫的方法

##MySQL資料庫

優化的八大方式(經典必看)點擊取得


選取最適用的欄位屬性,盡可能減少定義欄位寬度,盡量把欄位設定NOTNULL,例如'省份'、'性別'最好適用ENUM
使用連接(JOIN)來代替子查詢
適用聯合(UNION)來代替手動建立的臨時表
事務處理
鎖定表、最佳化事務處理
適用外鍵,優化鎖定表
建立索引
優化查詢語句

####

12、是否使用過模板引擎?使用的模板引擎的名字是?

Smarty:Smarty算是一種很老的PHP模板引擎了,它曾經是我使用這門語言模板的最初選擇。雖然它的更新已經不算頻繁了,並且缺少新一代模板引擎所具有的部分特性,但是它仍然值得一看。

13、對於大流量網站,採用什麼方法來解決訪問量的問題

確認伺服器硬體是否能夠支援目前的流量
資料庫讀寫分離,最佳化資料表
程式功能規則,禁止外部的盜鏈
控制大檔案的下載
使用不同主機分流主要流量

14、語句includerequire的差別是什麼?為避免多次包含相同文件,可以用(?)語句代替他們

require是無條件包含,也就是如果一個流程裡加入require,無論條件成立與否都會先執行require,當檔案不存在或無法開啟的時候,會提示錯誤,並且會終止程式執行

include有回傳值,而require沒有(可能因為如此require的速度比include快),如果被包含的檔案不存在的化,那麼會提示一個錯誤,但是程式會繼續執行下去

注意:包含檔案不存在或語法錯誤的時候require是致命的,而include不是

require_once表示了只包含一次,避免了重複包含

15、談談mvc的認知

由模型、視圖、控制器完成的應用程序,由模型發出要實現的功能到控制器,控制器接收組織功能傳遞給視圖

16. 說明php中傳值與傳引用的區別,並說明傳值何時傳引用?

變數預設總是傳值賦值,那也就是說,當將一個表達式的值賦予一個變數時,整個表達式的值被賦值到目標變量,這意味著:當一個變數的賦予另一個變數時,改變其中一個變數的值,將不會影響到另一個變數

php也提供了另一種方式給變數賦值:引用賦值。這意味著新的變數簡單的引用(換言之,成為了其別名或指向)了原始變數。改動的新的變數將影響到原始變量,反之亦然。使用引用賦值,簡單地將一個&符號加到將要賦值的變數前(來源變數)

物件預設是傳引用

#對於較大是的數據,傳引用比較好,這樣可以節省記憶體的開銷

以上是最新的PHP經典面試題目總結(上篇)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
PHP的當前狀態:查看網絡開發趨勢PHP的當前狀態:查看網絡開發趨勢Apr 13, 2025 am 12:20 AM

PHP在現代Web開發中仍然重要,尤其在內容管理和電子商務平台。 1)PHP擁有豐富的生態系統和強大框架支持,如Laravel和Symfony。 2)性能優化可通過OPcache和Nginx實現。 3)PHP8.0引入JIT編譯器,提升性能。 4)雲原生應用通過Docker和Kubernetes部署,提高靈活性和可擴展性。

PHP與其他語言:比較PHP與其他語言:比較Apr 13, 2025 am 12:19 AM

PHP適合web開發,特別是在快速開發和處理動態內容方面表現出色,但不擅長數據科學和企業級應用。與Python相比,PHP在web開發中更具優勢,但在數據科學領域不如Python;與Java相比,PHP在企業級應用中表現較差,但在web開發中更靈活;與JavaScript相比,PHP在後端開發中更簡潔,但在前端開發中不如JavaScript。

PHP與Python:核心功能PHP與Python:核心功能Apr 13, 2025 am 12:16 AM

PHP和Python各有優勢,適合不同場景。 1.PHP適用於web開發,提供內置web服務器和豐富函數庫。 2.Python適合數據科學和機器學習,語法簡潔且有強大標準庫。選擇時應根據項目需求決定。

PHP:網絡開發的關鍵語言PHP:網絡開發的關鍵語言Apr 13, 2025 am 12:08 AM

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP:許多網站的基礎PHP:許多網站的基礎Apr 13, 2025 am 12:07 AM

PHP成為許多網站首選技術棧的原因包括其易用性、強大社區支持和廣泛應用。 1)易於學習和使用,適合初學者。 2)擁有龐大的開發者社區,資源豐富。 3)廣泛應用於WordPress、Drupal等平台。 4)與Web服務器緊密集成,簡化開發部署。

超越炒作:評估當今PHP的角色超越炒作:評估當今PHP的角色Apr 12, 2025 am 12:17 AM

PHP在現代編程中仍然是一個強大且廣泛使用的工具,尤其在web開發領域。 1)PHP易用且與數據庫集成無縫,是許多開發者的首選。 2)它支持動態內容生成和麵向對象編程,適合快速創建和維護網站。 3)PHP的性能可以通過緩存和優化數據庫查詢來提升,其廣泛的社區和豐富生態系統使其在當今技術棧中仍具重要地位。

PHP中的弱參考是什麼?什麼時候有用?PHP中的弱參考是什麼?什麼時候有用?Apr 12, 2025 am 12:13 AM

在PHP中,弱引用是通過WeakReference類實現的,不會阻止垃圾回收器回收對象。弱引用適用於緩存系統和事件監聽器等場景,需注意其不能保證對象存活,且垃圾回收可能延遲。

解釋PHP中的__ Invoke Magic方法。解釋PHP中的__ Invoke Magic方法。Apr 12, 2025 am 12:07 AM

\_\_invoke方法允許對象像函數一樣被調用。 1.定義\_\_invoke方法使對象可被調用。 2.使用$obj(...)語法時,PHP會執行\_\_invoke方法。 3.適用於日誌記錄和計算器等場景,提高代碼靈活性和可讀性。

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.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用