国产人妖的免-国产人妖视频一区二区-国产人妖兮-国产人妖系列在线精品-国产人妖在线观看-国产人妖在线观看网站

首頁(yè) > 職業(yè)資格  > 

PHP開發(fā)九大經(jīng)驗(yàn) 天天觀點(diǎn)

2023-05-10   來(lái)源:萬(wàn)能知識(shí)網(wǎng)

PHP開發(fā)九大經(jīng)驗(yàn)

PHP是一門高效的網(wǎng)絡(luò)編程語(yǔ)言,由于它具有編寫靈活、運(yùn)行快速等優(yōu)點(diǎn),迅速成為Web程序員的首選語(yǔ)言。以下是小編為大家搜索整理PHP開發(fā)九大經(jīng)驗(yàn),希望能給大家?guī)?lái)幫助!更多精彩內(nèi)容請(qǐng)及時(shí)關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!


(資料圖片僅供參考)

1.首要意識(shí):安全

大多數(shù)時(shí)候,我們開發(fā)的Web程序都是需要跟數(shù)據(jù)庫(kù)打交道的,所以這里幾乎可以說(shuō)SQL注入是一個(gè)怎么也無(wú)法避免要拿出來(lái)討論一下的問(wèn)題。而且近年來(lái)像XSS和CSRF攻擊也變得大行其道,使得"黑客"們貌似又有了一把把利器,而我們總是處于被動(dòng)的狀態(tài)。不過(guò)我們要記得是下面這兩個(gè)原則:

1. 永遠(yuǎn)不要相信用戶輸入的東西。(老話了,但這是真的)

2. 將自己需要輸出的數(shù)據(jù)進(jìn)行轉(zhuǎn)義。

簡(jiǎn)單來(lái)說(shuō)就是:filter in put , escape output

如果你是新手,不要再使用類似以下的查詢語(yǔ)句了:

SELECT FROM users WHERE username = $_POST["username"] AND password = $_POST["password"];

還有就是,使用PDO或Mysqli吧,不要再使用老式的mysql操作了。

而對(duì)于,CSRF的解決方案,目前接觸的都是給每一次的表單提交都設(shè)置一個(gè)token值,然后在表單提交的.時(shí)候校驗(yàn)之即可。

2.明確地知道各個(gè)比較操作符的差別

PHP的比較操作符,這其實(shí)可以說(shuō)是一個(gè)很小的注意點(diǎn),但是在某些時(shí)候真的很重要。比如說(shuō)很多時(shí)候我們得考慮清楚,該用==還是===,如果你使用過(guò)strpos()這個(gè)函數(shù),下面的代碼可能會(huì)給你一個(gè)直觀的感受:

上面這段代碼的運(yùn)行結(jié)果其實(shí)是輸出Chris is not an author,但是現(xiàn)實(shí)情況是,Chris & Sean真的是Author啊,怎么回這樣呢?其實(shí)是這樣的:Chris正好出現(xiàn)在Chris & Sean首位開始處,也就是0這個(gè)位置,所以substr()返回了,由于條件判斷語(yǔ)句中bool判斷,所以0作為了false處理,于是程序輸出了Chris is not an author,但是在這種情況之下我們?cè)撛趺刺幚砟?我們其實(shí)可以這樣的:

這里的!==和!=的不同就體現(xiàn)出來(lái)了。

3.可以減少使用else就少使用else

這個(gè)貌似從我一開始接觸編程就有的一個(gè)想法,因?yàn)槊看慰吹絠f(){}else{}就有一種這一段其實(shí)可以寫得更好的感覺,因?yàn)橐坏┠銣p少了使用else關(guān)鍵字,你得代碼會(huì)減少兩行!沒錯(cuò),兩行也是我們的追求,而且,從我的經(jīng)驗(yàn)看,else少的代碼貌似可讀性更高,對(duì)我來(lái)說(shuō)。

if( this condition ) { $x = 5; } else{ $x = 10;}

如果,在$x的默認(rèn)值是10,還是下面這樣寫感覺比較好:

$x = 10;

if( this condition )

{ $x = 5; }

4.去掉不必要的括號(hào)

這里的目的其實(shí)跟else關(guān)鍵字部分是一樣的,我們是為了更簡(jiǎn)短的代碼和更優(yōu)越的可讀性,對(duì)以下的情況,你都應(yīng)該考慮優(yōu)化代碼:

if ($gollum == "halfling") { $height --; }

其實(shí)是可以這樣的:

if ($gollum == "halfling") $height --;

你甚至可以這樣:

是不是有一種又短又清晰的感覺?

5.多用str_replace()

在很多時(shí)候我們需要對(duì)一些字符串進(jìn)行替換,在PHP中有以下幾個(gè)函數(shù)可以達(dá)到這個(gè)目的:

str_replace()

ereg_replace()

preg_replace()

如果你確實(shí)是需要使用正則匹配,那就使用preg_replace(),而如果在可實(shí)現(xiàn)替換的情況下,請(qǐng)使用str_replace(),因?yàn)閾?jù)不完全統(tǒng)計(jì),str_replace()的效率在這三個(gè)當(dāng)中是最高的。

6.使用三元運(yùn)算符

這個(gè)可能很多人都有這個(gè)感受,使用三元運(yùn)算符之后,我們可以去掉一堆if else語(yǔ)句了,代碼又短又爽。

$host = strlen($host) > 0 ? $host : htmlentities($host);

7.使用緩存

目前PHP熱門的緩存技術(shù)可能就是Redis和Memcached了,在PHP的官方文檔中,也有Memcached的使用教程,至于Redis,我最近在研究中,后續(xù)會(huì)給出一些教程,如果一切順利的話。

8.使用框架

框架的好處很多,可能是在性能方面有所損失外,貌似找不到不用框架的理由了,框架即可以加快你的開發(fā)速度,也可以讓你在寫代碼的過(guò)程中擼的舒舒服服,而且想很多安全問(wèn)題,你都會(huì)得到很好的解決。我這里首推Laravel,不過(guò)像Yii2 Slim Symfony都是非常棒的框架,除了Symfony沒有嘗過(guò)過(guò)之外,剩下的三個(gè)我都有使用經(jīng)歷,最后就基本是用Laravel了。不過(guò)我建議的Laravel可能不適合你,這還是得看個(gè)人喜好。

9.用isset()代替strlen()

如果你需要在項(xiàng)目代碼中需要根據(jù)一個(gè)字符串的長(zhǎng)度來(lái)做條件判斷,這個(gè)時(shí)候非常推薦你直接使用isset(),因?yàn)樵谕葪l件之后,isset()的速度是strlen()的五倍左右,所以:

以上的兩個(gè)條件判斷都是可以達(dá)到相同的目的,但是小編推薦使用的是第一種。

詞條內(nèi)容僅供參考,如果您需要解決具體問(wèn)題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。

標(biāo)簽

如果你

推薦詞條

主站蜘蛛池模板: 日韩欧美一区二区三区免 | 日韩成人在线观看 | 91孕妇精品一区二区三区 | 91精品视品在线播放 | 国产精品美女 | 国产午夜精品理论片免费视频播放 | 99久久国产综合精品swag | 91精品国产福利在线观看 | 亚洲成a人片在线观看无码专区 | 亚洲精品少妇一区二 | 成人av在线播放 | 91伊人久久大香线蕉 | 日韩人妻无码系列专区 | 亚洲av无一区二区三区久久 | 日韩无码三级片免费观看 | 91精产品一永久下载app官方正 | 日本久久免费大片 | 亚洲欧美中文日韩v在线观看 | 欧美一区二区三区视频在线观看 | 日韩人妻香蕉网在线 | 91精品人妻人人做人碰人人爽 | 亚洲成人电影 | 中文字幕精品一区二区三 | 无码国产精品一区二区免费模式 | 国产极品在线播放 | 亚洲国产欧美国产综合久久 | 四虎成人精品在永久在线 | 国产成人久久综合一区77 | 欧美乱大交| 亚洲综合色婷婷在线观看 | 日韩精品视频欧美国产 | 午夜精品视频 | 国产精品毛片更新无码 | 日本乱熟人妻中文字幕乱码 | 国产精品香蕉成人网在线观看 | 97人人摸人人操 | av天堂最新手机网址无码窝 | 欧美国产一级特黄aaa大片在线观看 | 日韩精品无码一区二区三区不卡 | 狠狠人妻久久久久久综合九 | 91精品人妻一区二区三区 |