激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - PHP教程 - 關(guān)于PHP開發(fā)的9條建議

關(guān)于PHP開發(fā)的9條建議

2020-11-09 16:11PHP教程網(wǎng) PHP教程

這篇文章主要介紹了關(guān)于PHP開發(fā)的9條建議,都是個(gè)人的一些經(jīng)驗(yàn)總結(jié),有需要的小伙伴可以參考下。

本文只是個(gè)人從實(shí)際開發(fā)經(jīng)驗(yàn)中總結(jié)的一些東西,并不是什么名言警句,寫出來有兩個(gè)目的:一是時(shí)刻提醒自己要按照這些知識(shí)點(diǎn)來寫自己代碼,二是為了分享,說不定對你有用呢?萬一,是吧。。。

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

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

1. 永遠(yuǎn)不要相信用戶輸入的東西。(老話了,但這是真的)
2. 將自己需要輸出的數(shù)據(jù)進(jìn)行轉(zhuǎn)義。

簡單來說就是:filter input , escape output

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

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

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

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

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

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

?
1
2
3
4
5
6
7
8
9
<?php
 
$authors = 'Chris & Sean';
 
if (strpos($authors, 'Chris')) {
  echo 'Chris is an author.';
} else {
  echo 'Chris is not an author.';
}

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

?
1
2
3
4
5
6
7
<?php
 
if (strpos($authors, 'Chris') !== FALSE) {
  echo 'Chris is an author.';
} else {
  echo 'Chris is not an author.';
}

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

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

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

?
1
2
3
4
5
6
7
if( this condition )
{
$x = 5;
}
else
{
$x = 10;

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

?
1
2
3
4
5
$x = 10;
if( this condition )
{
$x = 5;
}

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

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

?
1
2
3
if ($gollum == 'halfling') {
$height --;
}

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

?
1
if ($gollum == 'halfling') $height --;

你甚至可以這樣:

?
1
2
3
4
5
6
7
8
if ($gollum == 'halfling') $height --;
else $height ++;
 
if ($frodo != 'dead')
echo 'Gosh darnit, roll again Sauron';
 
foreach ($kill as $count)
echo 'Legolas strikes again, that makes' . $count . 'for me!';

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

5.多用str_replace()

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

?
1
2
3
str_replace()
ereg_replace()
preg_replace()

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

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

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

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

7.使用緩存

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

8.使用框架

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

9.用isset()代替strlen()

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

?
1
2
3
4
5
6
7
8
9
10
<?php
 
if (isset($username[5])) {
  // The username is at least six characters long.
}
 
 
if (strlen($username) >= 6) {
  // The username is at least six characters long.
}

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

以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美成人se01短视频在线看 | 国产做爰全免费的视频黑人 | 麻豆911| 久久精品亚洲欧美日韩精品中文字幕 | 少妇色诱麻豆色哟哟 | 成年人在线视频观看 | 国产69精品久久久久久野外 | 天堂精品久久 | 日本黄色大片免费 | 毛片一级视频 | 失禁高潮抽搐喷水h | 国产午夜精品理论片a级探花 | 一级片免费在线播放 | 九九热视频免费在线观看 | 国av在线 | 天天干天天碰 | 一级毛片在线视频 | 黄色网电影 | 午夜激情视频免费 | 日本中文字幕久久 | 97久久曰曰久久久 | 国产91片 | 欧美一级黄色网 | 4p一女两男做爰在线观看 | 亚洲免费片 | 操操插插 | 精品在线观看一区二区三区 | 欧美另类视频在线 | 久久久新| 国产午夜亚洲精品理论片大丰影院 | 国产四区 | 黄色片在线免费播放 | 国产成人综合在线 | 精品在线视频观看 | 国产精品免费久久久久久 | 热久久91| 在线a毛片免费视频观看 | 国产精品av久久久久久网址 | 亚洲第一综合 | 日本一区免费看 | 国产成人小视频在线观看 |