PHP初級(jí)經(jīng)典面試題目匯總(上篇)

本文章將持續(xù)更新腊嗡,如果你也是一名使用運(yùn)籌世界上最好的語言于帷幄的程序員微猖,希望能在評(píng)論區(qū)發(fā)表自己的見解和認(rèn)為比較經(jīng)典的題目戒职,后續(xù)筆者會(huì)在適當(dāng)?shù)墓?jié)點(diǎn)對(duì)本文章進(jìn)行分類和層次劃分。文章中的不足之處望多指點(diǎn)绢陌,糾正!

1挨下、雙引號(hào)和單引號(hào)的區(qū)別

  • 雙引號(hào)解釋變量,單引號(hào)不解釋變量
  • 雙引號(hào)里插入單引號(hào)下面,其中單引號(hào)里如果有變量的話,變量解釋
  • 雙引號(hào)的變量名后面必須要有一個(gè)非數(shù)字绩聘、字母沥割、下劃線的特殊字符,或者用{}講變量括起來凿菩,否則會(huì)將變量名后面的部分當(dāng)做一個(gè)整體机杜,引起語法錯(cuò)誤
  • 雙引號(hào)解釋轉(zhuǎn)義字符,單引號(hào)不解釋轉(zhuǎn)義字符衅谷,但是解釋'\和\\
  • 能使單引號(hào)字符盡量使用單引號(hào)椒拗,單引號(hào)的效率比雙引號(hào)要高(因?yàn)殡p引號(hào)要先遍歷一遍,判斷里面有沒有變量获黔,然后再進(jìn)行操作蚀苛,而單引號(hào)則不需要判斷)

2、常用的超全局變量(8個(gè))

  • $_GET ----->get傳送方式
  • $_POST ----->post傳送方式
  • $_REQUEST ----->可以接收到get和post兩種方式的值

  • $GLOBALS ----->所有的變量都放在里面
  • $_FILES ----->上傳文件使用
  • $_SERVER ----->系統(tǒng)環(huán)境變量

  • $_SESSION ----->會(huì)話控制的時(shí)候會(huì)用到
  • $_COOKIE ----->會(huì)話控制的時(shí)候會(huì)用到

3玷氏、HTTP中POST堵未、GET、PUT盏触、DELETE方式的區(qū)別

HTTP定義了與服務(wù)器交互的不同的方法渗蟹,最基本的是POST、GET赞辩、PUT雌芽、DELETE,與其比不可少的URL的全稱是資源描述符辨嗽,我們可以這樣理解:url描述了一個(gè)網(wǎng)絡(luò)上資源世落,而post、get糟需、put岛心、delegate就是對(duì)這個(gè)資源進(jìn)行增、刪篮灼、改忘古、查的操作!

3.1表單中g(shù)et和post提交方式的區(qū)別
  • get是把參數(shù)數(shù)據(jù)隊(duì)列加到提交表單的action屬性所指的url中诅诱,值和表單內(nèi)各個(gè)字段一一對(duì)應(yīng)髓堪,從url中可以看到;post是通過HTTPPOST機(jī)制,將表單內(nèi)各個(gè)字段與其內(nèi)容防止在HTML的head中一起傳送到action屬性所指的url地址干旁,用戶看不到這個(gè)過程
  • 對(duì)于get方式驶沼,服務(wù)器端用Request.QueryString獲取變量的值,對(duì)于post方式争群,服務(wù)器端用Request.Form獲取提交的數(shù)據(jù)
  • get傳送的數(shù)據(jù)量較小回怜,post傳送的數(shù)據(jù)量較大,一般被默認(rèn)不受限制换薄,但在理論上玉雾,IIS4中最大量為80kb,IIS5中為1000k轻要,get安全性非常低复旬,post安全性較高
3.2
  • GET請(qǐng)求會(huì)向數(shù)據(jù)庫發(fā)索取數(shù)據(jù)的請(qǐng)求,從而來獲取信息冲泥,該請(qǐng)求就像數(shù)據(jù)庫的select操作一樣驹碍,只是用來查詢一下數(shù)據(jù),不會(huì)修改凡恍、增加數(shù)據(jù)志秃,不會(huì)影響資源的內(nèi)容,即該請(qǐng)求不會(huì)產(chǎn)生副作用嚼酝。無論進(jìn)行多少次操作洽损,結(jié)果都是一樣的。

  • 與GET不同的是革半,PUT請(qǐng)求是向服務(wù)器端發(fā)送數(shù)據(jù)的碑定,從而改變信息,該請(qǐng)求就像數(shù)據(jù)庫的update操作一樣又官,用來修改數(shù)據(jù)的內(nèi)容延刘,但是不會(huì)增加數(shù)據(jù)的種類等,也就是說無論進(jìn)行多少次PUT操作六敬,其結(jié)果并沒有不同碘赖。

  • POST請(qǐng)求同PUT請(qǐng)求類似,都是向服務(wù)器端發(fā)送數(shù)據(jù)的外构,但是該請(qǐng)求會(huì)改變數(shù)據(jù)的種類等資源普泡,就像數(shù)據(jù)庫的insert操作一樣,會(huì)創(chuàng)建新的內(nèi)容审编。幾乎目前所有的提交操作都是用POST請(qǐng)求的撼班。

  • DELETE請(qǐng)求顧名思義,就是用來刪除某一個(gè)資源的垒酬,該請(qǐng)求就像數(shù)據(jù)庫的delete操作砰嘁。

4件炉、PHP介紹

Hypertext Preprocessor----超文本預(yù)處理器

Personal Home Page 原始名稱

目標(biāo)用途: 允許web開發(fā)人員快速編寫動(dòng)態(tài)生成的web頁面,與其他頁面相比矮湘,PHP是將程序嵌入到HTML文檔中去執(zhí)行斟冕,效率比完全生成HTML編輯的CGI高很多

HTML: Hypertext Markup Language

創(chuàng)始人: 拉姆斯勒·勒多夫Rasmus Lerdorf,1968年生缅阳,加拿大滑鐵盧大學(xué)

勒多夫最開始是為了維護(hù)個(gè)人網(wǎng)頁磕蛇,用prel語言寫了維護(hù)程序,之后又用c進(jìn)行了重寫十办,最終衍生出php/fi

時(shí)間軸:

  • 1995.06.08將PHP/FI公開釋出
  • 1995 php2.0秀撇,加入了對(duì)MySQL的支持
  • 1997 php3.0
  • 2000 php4.0
  • 2008 php5.0
  • 由于php6.0沒有完全解決Unicode編碼,所以基本沒有生產(chǎn)線上的應(yīng)用橘洞,基本只是一款概念產(chǎn)品捌袜,很多功能已經(jīng)在php5.3.3和php5.3.4上實(shí)現(xiàn)

常見的IDE(Intergrated Development Environment): 集成開發(fā)環(huán)境

常見文本編輯器说搅,具備代碼高亮:

PHP優(yōu)勢(shì)

PHP特性:

  • php獨(dú)特混合了C,Java,Prel以及PHP自創(chuàng)的語法
  • 可以比CGI或者Prel更快速去執(zhí)行動(dòng)態(tài)網(wǎng)頁炸枣,與其他變成語言相比,PHP是講程序嵌入到HTML文檔中去執(zhí)行弄唧,執(zhí)行效率比完全生成HTML編輯的CGI要高很多适肠,所有的CGI都能實(shí)現(xiàn)
  • 支持幾乎所有流行的數(shù)據(jù)庫以及操作系統(tǒng)
  • PHP可以使用C,C++進(jìn)行程序的擴(kuò)展

PHP優(yōu)勢(shì):

  • 開放源代碼
  • 免費(fèi)性
  • 快捷性
  • 跨平臺(tái)強(qiáng)
  • 效率高
  • 圖形處理
  • 面向?qū)ο?/li>
  • 專業(yè)專注

PHP技術(shù)應(yīng)用:

  • 靜態(tài)頁面生成
  • 數(shù)據(jù)庫緩存
  • 過程緩存
  • div+css w3c標(biāo)準(zhǔn)
  • 大負(fù)荷
  • 分布式
  • flex
  • 支持MVC
  • Smarty模塊引擎

PHP認(rèn)證級(jí)別

  • 初級(jí) IFE:Index Front Engineer 前端工程師
  • 中級(jí) IPE:Index PHP Engineer PHP工程師
  • 高級(jí) IAE:Index Architecture Engineer 架構(gòu)工程師

6、echo候引、print_r侯养、print、var_dump之間的區(qū)別

* echo澄干、print是php語句逛揩,var_dump和print_r是函數(shù)
* echo 輸出一個(gè)或多個(gè)字符串,中間以逗號(hào)隔開麸俘,沒有返回值是語言結(jié)構(gòu)而不是真正的函數(shù)辩稽,因此不能作為表達(dá)式的一部分使用
* print也是php的一個(gè)關(guān)鍵字,有返回值 只能打印出簡(jiǎn)單類型變量的值(如int从媚,string)逞泄,如果字符串顯示成功則返回true,否則返回false
* print_r 可以打印出復(fù)雜類型變量的值(如數(shù)組拜效、對(duì)象)以列表的形式顯示喷众,并以array、object開頭紧憾,但print_r輸出布爾值和NULL的結(jié)果沒有意義到千,因?yàn)槎际谴蛴?\n",因此var_dump()函數(shù)更適合調(diào)試
* var_dump() 判斷一個(gè)變量的類型和長(zhǎng)度赴穗,并輸出變量的數(shù)值

7父阻、HTTP狀態(tài)碼

點(diǎn)擊這兒查看HTTP狀態(tài)碼詳解

常見的HTTP狀態(tài)碼:

  • 200 - 請(qǐng)求成功
  • 301 - 資源(網(wǎng)頁等)被永久轉(zhuǎn)義到其他URL
  • 404 - 請(qǐng)求的資源(網(wǎng)頁等)不存在
  • 505 - 內(nèi)部服務(wù)器錯(cuò)誤

HTTP狀態(tài)碼分類:

  • 1** - 信息愈涩,服務(wù)器收到的請(qǐng)求,需要請(qǐng)求者繼續(xù)執(zhí)行操作
  • 2** - 成功加矛,操作被成功接收并處理
  • 3** - 重定向履婉,需要進(jìn)一步的操作以完成請(qǐng)求
  • 4** - 客戶端錯(cuò)誤,請(qǐng)求包含語法錯(cuò)誤或者無法完成請(qǐng)求
  • 5** 服務(wù)器錯(cuò)誤斟览,服務(wù)器在處理請(qǐng)求的過程
    中發(fā)生了錯(cuò)誤

8毁腿、什么是魔術(shù)引號(hào)

魔術(shù)引號(hào)是一個(gè)將自動(dòng)將進(jìn)入PHP腳本的數(shù)據(jù)進(jìn)行轉(zhuǎn)義的過程,最好在編碼時(shí)不要轉(zhuǎn)義而在運(yùn)行時(shí)根據(jù)需要而轉(zhuǎn)義

9苛茂、如何獲取客戶端的ip(要求取得一個(gè)int)和服務(wù)器ip的代碼

客戶端:$_SERVER["REMOTE_ADDR"];或者getenv('REMOTE_ADDR')
ip2long進(jìn)行轉(zhuǎn)換
服務(wù)器端:gethostbyname('www.baidu.com')

10已烤、使用那些工具進(jìn)行版本控制

cvs、svn妓羊、vss胯究、git

11、優(yōu)化數(shù)據(jù)庫的方法

MySQL數(shù)據(jù)庫優(yōu)化的八大方式(經(jīng)典必看)點(diǎn)擊獲取
  • 選取最適用的字段屬性躁绸,盡可能減少定義字段寬度裕循,盡量把字段設(shè)置NOTNULL,例如'省份'净刮、'性別'最好適用ENUM
  • 使用連接(JOIN)來代替子查詢
  • 適用聯(lián)合(UNION)來代替手動(dòng)創(chuàng)建的臨時(shí)表
  • 事務(wù)處理
  • 鎖定表剥哑、優(yōu)化事務(wù)處理
  • 適用外鍵,優(yōu)化鎖定表
  • 建立索引
  • 優(yōu)化查詢語句

12淹父、是否使用過模板引擎株婴?使用的模板引擎的名字是?

Smarty:Smarty算是一種很老的PHP模板引擎了暑认,它曾是我使用這門語言模板的最初選擇困介。雖然它的更新已經(jīng)不算頻繁了,并且缺少新一代模板引擎所具有的部分特性蘸际,但是它仍然值得一看座哩。

13、對(duì)于大流量網(wǎng)站捡鱼,采用什么方法來解決訪問量的問題

  • 確認(rèn)服務(wù)器硬件是否能夠支持當(dāng)前的流量
  • 數(shù)據(jù)庫讀寫分離八回,優(yōu)化數(shù)據(jù)表
  • 程序功能規(guī)則,禁止外部的盜鏈
  • 控制大文件的下載
  • 使用不同主機(jī)分流主要流量

14驾诈、語句include和require的區(qū)別是什么缠诅?為避免多次包含同一文件,可以用(?)語句代替他們

  • require是無條件包含乍迄,也就是如果一個(gè)流程里加入require管引,無論條件成立與否都會(huì)先執(zhí)行require,當(dāng)文件不存在或者無法打開的時(shí)候闯两,會(huì)提示錯(cuò)誤褥伴,并且會(huì)終止程序執(zhí)行

  • include有返回值谅将,而require沒有(可能因?yàn)槿绱藃equire的速度比include快),如果被包含的文件不存在的化重慢,那么會(huì)提示一個(gè)錯(cuò)誤饥臂,但是程序會(huì)繼續(xù)執(zhí)行下去

注意:包含文件不存在或者語法錯(cuò)誤的時(shí)候require是致命的,而include不是

  • require_once表示了只包含一次似踱,避免了重復(fù)包含

15隅熙、談?wù)刴vc的認(rèn)識(shí)

由模型、視圖核芽、控制器完成的應(yīng)用程序囚戚,由模型發(fā)出要實(shí)現(xiàn)的功能到控制器,控制器接收組織功能傳遞給視圖

16轧简、 說明php中傳值與傳引用的區(qū)別驰坊,并說明傳值什么時(shí)候傳引用?

變量默認(rèn)總是傳值賦值哮独,那也就是說拳芙,當(dāng)將一個(gè)表達(dá)式的值賦予一個(gè)變量時(shí),整個(gè)表達(dá)式的值被賦值到目標(biāo)變量借嗽,這意味著:當(dāng)一個(gè)變量的賦予另外一個(gè)變量時(shí)态鳖,改變其中一個(gè)變量的值转培,將不會(huì)影響到另外一個(gè)變量

php也提供了另外一種方式給變量賦值:引用賦值恶导。這意味著新的變量簡(jiǎn)單的引用(換言之,成為了其別名或者指向)了原始變量浸须。改動(dòng)的新的變量將影響到原始變量惨寿,反之亦然。使用引用賦值删窒,簡(jiǎn)單地將一個(gè)&符號(hào)加到將要賦值的變量前(源變量)

對(duì)象默認(rèn)是傳引用
對(duì)于較大是的數(shù)據(jù)裂垦,傳引用比較好,這樣可以節(jié)省內(nèi)存的開銷

后續(xù)補(bǔ)充……

整理By--Demoer
轉(zhuǎn)載請(qǐng)注明出處

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末肌索,一起剝皮案震驚了整個(gè)濱河市蕉拢,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌诚亚,老刑警劉巖晕换,帶你破解...
    沈念sama閱讀 212,294評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異站宗,居然都是意外死亡闸准,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,493評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門梢灭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來夷家,“玉大人蒸其,你說我怎么就攤上這事】饪欤” “怎么了摸袁?”我有些...
    開封第一講書人閱讀 157,790評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)义屏。 經(jīng)常有香客問我但惶,道長(zhǎng),這世上最難降的妖魔是什么湿蛔? 我笑而不...
    開封第一講書人閱讀 56,595評(píng)論 1 284
  • 正文 為了忘掉前任膀曾,我火速辦了婚禮,結(jié)果婚禮上阳啥,老公的妹妹穿的比我還像新娘添谊。我一直安慰自己,他們只是感情好察迟,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,718評(píng)論 6 386
  • 文/花漫 我一把揭開白布斩狱。 她就那樣靜靜地躺著,像睡著了一般扎瓶。 火紅的嫁衣襯著肌膚如雪所踊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,906評(píng)論 1 290
  • 那天概荷,我揣著相機(jī)與錄音秕岛,去河邊找鬼。 笑死误证,一個(gè)胖子當(dāng)著我的面吹牛继薛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播愈捅,決...
    沈念sama閱讀 39,053評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼遏考,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了蓝谨?” 一聲冷哼從身側(cè)響起灌具,我...
    開封第一講書人閱讀 37,797評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎譬巫,沒想到半個(gè)月后咖楣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,250評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡缕题,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,570評(píng)論 2 327
  • 正文 我和宋清朗相戀三年截歉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片烟零。...
    茶點(diǎn)故事閱讀 38,711評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡瘪松,死狀恐怖咸作,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情宵睦,我是刑警寧澤记罚,帶...
    沈念sama閱讀 34,388評(píng)論 4 332
  • 正文 年R本政府宣布,位于F島的核電站壳嚎,受9級(jí)特大地震影響桐智,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜烟馅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,018評(píng)論 3 316
  • 文/蒙蒙 一说庭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧郑趁,春花似錦刊驴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,796評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至梭纹,卻和暖如春躲惰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背变抽。 一陣腳步聲響...
    開封第一講書人閱讀 32,023評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工础拨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人瞬沦。 一個(gè)月前我還...
    沈念sama閱讀 46,461評(píng)論 2 360
  • 正文 我出身青樓太伊,卻偏偏與公主長(zhǎng)得像雇锡,于是被迫代替她去往敵國(guó)和親逛钻。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,595評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容

  • 1锰提、雙引號(hào)和單引號(hào)的區(qū)別 雙引號(hào)解釋變量曙痘,單引號(hào)不解釋變量 雙引號(hào)里插入單引號(hào),其中單引號(hào)里如果有變量的話立肘,變量解...
    尋夢(mèng)xunm閱讀 320評(píng)論 1 7
  • 1边坤、雙引號(hào)和單引號(hào)的區(qū)別 雙引號(hào)解釋變量,單引號(hào)不解釋變量 雙引號(hào)里插入單引號(hào)谅年,其中單引號(hào)里如果有變量的話茧痒,變量解...
    摩洛哥的日光閱讀 237評(píng)論 1 3
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)融蹂,斷路器旺订,智...
    卡卡羅2017閱讀 134,633評(píng)論 18 139
  • 1弄企、雙引號(hào)和單引號(hào)的區(qū)別 雙引號(hào)解釋變量,單引號(hào)不解釋變量 雙引號(hào)里插入單引號(hào)区拳,其中單引號(hào)里如果有變量的話拘领,變量解...
    vardump閱讀 1,092評(píng)論 0 3
  • PHP經(jīng)典面試題目匯總(上篇) 1、雙引號(hào)和單引號(hào)的區(qū)別 雙引號(hào)解釋變量樱调,單引號(hào)不解釋變量 雙引號(hào)里插入單引號(hào)约素,其...
    小小奶狗閱讀 1,241評(píng)論 0 30