本文章將持續(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)碼
常見的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)注明出處