目錄
2. 认识各种比较运算符的分别
3. 简化判断句中的 else 部分
4. 放弃那些括号
首頁 後端開發 php教程 十大技巧提升你的 PHP 运用实力_PHP教程

十大技巧提升你的 PHP 运用实力_PHP教程

Jul 21, 2016 pm 02:56 PM
g php 十大 學院 實力 蓋站 技巧 提升 文件 網站 運用

烈火建站学院文档 在 Smashing Magazine 的网站,Glen Stansberry 提出十个进阶 PHP 技巧,可以即时提昇你的 PHP 编程实力,其中包括 SQL 注入攻击的「作弊表」、简化判断句中的 else 部分、在不得已的情况下才使用正规表达式、三元运算子、Memcached 数据库快取系统等等,以下是详细的内容。

PHP 在 1995 年从一个不起眼的编程语言开始,多年来迅速发展,现在已经是其中一种最流行的网络开发语言,许多热门网站均採用 PHP 来开发,绝大多数的程式和网站项目都是由这种流行语言写成。

由於 PHP 如此受欢迎,任何网站开发人员几乎都不能不认识 PHP,这份教程是為那些刚刚完成了 PHP 的学习初阶,捲起衣袖準备大干一番的人,下面列出的十个优秀技巧,是 PHP 开发人员必须学习,并在每次编程时使用它们,这些提示可以加快你们对 PHP 的熟练,使程式码跑得更快捷,更简洁,性能上更优化。

1. 使用 SQL 注入攻击作弊表

SQL 注入攻击是一种非常令人厌恶的东西,它是一种安全漏洞,允许黑客利用程式码中的漏洞潜入你的数据库。虽然本文与 MySQL 无关,不过许多 PHP 程式使用 MySQL 数据库,若果你要写安全的程式码,懂得什麼情况需要避开是很有用的。

Furruh Mavituna 写了一篇很有趣的 SQL 注入攻击作弊表,其中一章节有关 PHP 和 MySQL 的安全漏洞,若果你能避开其中所述的行為,你的程式将不容易受到攻击。

2. 认识各种比较运算符的分别

比较运算符是 PHP 很重要的部份,可惜很多程序员并不熟悉它们之间的分别,事实上,据一篇在 IO Reader 网站上发表的文章,许多 PHP 开发人员不能分辨 PHP 各种比较运算符之间的差异,引用该文的几句话:

这是极為重要的,但是很多 PHP 开发人员根本不知道 == 和 === 有什麼分别,从本质上讲,== 判断两个值是否相等,PHP 在进行比较前会尝试转换数据类型以,例如:1== '1' (true);=== 则同时判断值和数据类型,例如:1==='1'(false),开发人员必须儘快认识这些运算符对常用函式如 strpos() 的实用性,由於 PHP 把零视為「false」,没有 === 的话我们无从知道一个被搜寻字符串是在一个较长字符串的开始位置,还是根本不存在,在很多其他应用裡,当传回值為零未必等於 false 的时候,=== 便十分有用。

你可以到 PHP.net 网站看到各种比较运算符的清单。

3. 简化判断句中的 else 部分

必须提示各位,第三和第四点可能会使程式码的可读性降低,这两点强调速度和效能,若果你不想牺牲程式码的可读性,你可能要跳过它们。

凡是能使程式码更简单和更小的做法,通常都是好的做法,其中之一就是把 else 叙述句的内容抽出来,Christian Montoya 便有一个很好的例子,利用较短的 else 叙述句来转换字符。

常见的 else 叙述句:

以下为引用的内容:
if( this condition )
{
$x = 5;
}
else
{
$x = 10;
}

如果 $x 的预设值是 10,我们便从 10 开始,无须在 else 部分指定它的值。

<table style="BORDER-RIGHT: #cccccc 1px dotted; TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotted; BORDER-LEFT: #cccccc 1px dotted; BORDER-BOTTOM: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0"><tbody><tr><td style="WORD-WRAP: break-word" bgcolor="#fdfddf"><font color="#ff0000">以下为引用的内容:</font><br /><pre class="brush:php;toolbar:false">$x = 10;<br />if( this condition )<br />{<br />$x = 5;<br />} 
登入後複製
 <span><span class="google-src-text" style="DIRECTION: ltr; TEXT-ALIGN: left">if( this condition )</span>如果(这种情况)</span>   <span><span class="google-src-text" style="DIRECTION: ltr; TEXT-ALIGN: left">{</span> (</span>   <span><span class="google-src-text" style="DIRECTION: ltr; TEXT-ALIGN: left">$x = 5;</span> $ x = 5 ;</span>   <span><span class="google-src-text" style="DIRECTION: ltr; TEXT-ALIGN: left">}</span> )</span>   <span><span class="google-src-text" style="DIRECTION: ltr; TEXT-ALIGN: left">else</span>其他的</span>   <span><span class="google-src-text" style="DIRECTION: ltr; TEXT-ALIGN: left">{</span> (</span>   <span><span class="google-src-text" style="DIRECTION: ltr; TEXT-ALIGN: left">$x = 10;</span> $ x = 10 ;</span>   <span><span class="google-src-text" style="DIRECTION: ltr; TEXT-ALIGN: left">}</span> )</span>
登入後複製

虽然看起来没有很大分别,不过若果你的程式中有很多 else 叙述句,累加的效果会很明显。

4. 放弃那些括号


就像简化 else 叙述句那样,如果在控制结构后只有一句表达式,放弃表达式前后的括号可以节省一些字符。Evolt.org 便有一个灵巧的例子示范怎样减少使用括号。

以下为引用的内容:
if ($gollum == 'halfling') {
$height --;
}

这是相同的:<br /><table style="BORDER-RIGHT: #cccccc 1px dotted; TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotted; BORDER-LEFT: #cccccc 1px dotted; BORDER-BOTTOM: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0"><tbody><tr><td style="WORD-WRAP: break-word" bgcolor="#fdfddf"><font color="#ff0000">以下为引用的内容:</font><br />if ($gollum == 'halfling') $height --;</td></tr></tbody></table>
登入後複製
这个方法可以在程式中多次使用:<br /><br /><table style="BORDER-RIGHT: #cccccc 1px dotted; TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotted; BORDER-LEFT: #cccccc 1px dotted; BORDER-BOTTOM: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0"><tbody><tr><td style="WORD-WRAP: break-word" bgcolor="#fdfddf"><font color="#ff0000">以下为引用的内容:</font><br />if ($gollum == 'halfling') $height --;<br />else $height ++; <br /><br />if ($frodo != 'dead')<br />echo 'Gosh darnit, roll again Sauron';<br /><br />foreach ($kill as $count)<br />echo 'Legolas strikes again, that makes' . $count . 'for me!';</td></tr></tbody></table><br /><br /><strong><font size="3">5. 取 str_replace(),捨 ereg_replace() 及 preg_replace()</font></strong>
登入後複製

以效率来说,str_replace() 比正规表达式更适合用来取代字符串,据一些研究,str_replace() 的效率比 ereg_replace() 和 preg_replace() 高 61%。

登入後複製
  • 共2页:
  • 上一页
  • 1
  • 2
  • 下一页

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/364244.htmlTechArticle烈火建站学院文档 在 Smashing Magazine 的网站,Glen Stansberry 提出十个进阶 PHP 技巧,可以即时提昇你的 PHP 编程实力,其中包括 SQL 注入攻击的...
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱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.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

php程序在字符串中計數元音 php程序在字符串中計數元音 Feb 07, 2025 pm 12:12 PM

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

解釋PHP中的晚期靜態綁定(靜態::)。 解釋PHP中的晚期靜態綁定(靜態::)。 Apr 03, 2025 am 12:04 AM

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? 什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? Apr 03, 2025 am 12:03 AM

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。

gate官網入口 gate交易所官網 gate官網入口 gate交易所官網 Feb 19, 2025 pm 03:03 PM

Gate.io 官網可以通過單擊鏈接或在瀏覽器中輸入網址訪問。建議將網址添加到書籤或收藏夾以方便訪問。如果遇到無法訪問問題,嘗試清除瀏覽器的緩存和 Cookie。注意防範網絡釣魚,Gate.io 官方網站不會主動索要個人信息。此外,Gate.io 提供移動應用程序,可通過應用商

BitMEX交易所提幣規則及優缺點 BitMEX交易所提幣規則及優缺點 Feb 21, 2025 pm 10:48 PM

BitMEX交易所提幣要求:必須完成兩步驗證和身份驗證。最低提幣金額因幣種而異。提幣流程包括登錄賬戶、輸入提幣地址、輸入金額和確認交易。 BitMEX提幣的優點包括快速處理、低手續費、多種幣種支持和嚴格的安全措施。然而,它也面臨監管不足、黑客攻擊風險、提幣限制和賬戶凍結風險等缺點。

gate.io芝麻開門下載中文教程 gate.io芝麻開門下載中文教程 Feb 28, 2025 am 10:54 AM

本文將詳細指導您如何訪問Gate.io官網、切換中文語言、註冊或登錄賬號,以及可選的手機App下載和使用流程,助您輕鬆上手Gate.io交易所。 了解更多Gate.io中文使用教程,請繼續閱讀。

See all articles