本文目錄一覽:
- 1、php7中為什麼不能用
- 2、為什麼php eclispe裡面php文件不需要閉合標籤
- 3、看這段php代碼中,<P>標籤不用關閉嗎?也就是說不用寫</P>嗎?
- 4、為什麼有時候 php 沒有寫閉合標籤結束符
php7中為什麼不能用
1. 不要使用 mysql_ 函數
這一天終於來了,從此你不僅僅“不應該”使用mysql_函數。PHP 7 已經把它們從核心中全部移除了,也就是說你需要遷移到好得多的mysqli_函數,或者更靈活的 PDO 實現。
2. 不要編寫垃圾代碼
這一條可能易於理解,但是會變得越來越重要,因為 PHP 7 的速度提升可能會隱藏你的一些問題。不要僅僅滿足於你的站點速度,因為遷移到 PHP 7 才讓它變快。
為了理解速度有多重要,以及如何把事情做得更好,請看一看我們的文章速度優化入門指南。
作為一名開發者,你應該總是確保按需加載腳本,儘可能連接它們,編寫高效的數據庫查詢,儘可能使用緩存,以及其它。
3. 不要在文件末尾使用 PHP 閉合標籤
你可以看一看,當一個文件以 PHP 代碼結尾時,WordPress 多數核心代碼都把末尾的 PHP 標籤去掉了。實際上,Zend 框架特別禁止了它。PHP 並不需要文件末尾的閉合標籤,並且我們可以通過去掉它來保證不會在後面添加任何的空白字符。
4. 不要做不必要的引用傳遞
我個人不喜歡引用傳遞。我知道有時候它很實用,但是其它情況下它使代碼變得難懂,並且更難預測結果。
據說一些人認為它使代碼運行更快,但是根據一些 PHP 高級程序員所說,這並不正確。
說明引用為什麼不好的一個例子是,PHP 內建了shuffle()和sort()。它們修改原始數組,而不是返回處理後的數組,這很不合邏輯。
5. 不要在循環中執行查詢
在循環中執行查詢非常浪費。它給你的系統施加不必要的壓力,並且可能能夠在循環外部更快獲得相同結果。當我遇到需要這樣的情況時,我通常會使用兩個分離的查詢來解決問題,我會使用它們來構建數據數組。之後我會遍曆數組,並不需要在這個過程中執行查詢。
由於 WordPress 適用於這裡,它可能有一些例外。雖然get_post_meta() 會從數據庫獲取大量數據,如果你正在遍歷某個特殊博文的元數據你可以在循環中使用它。這是因為當你第一次調用它的時候,WordPress實際上會獲取所有元數據並緩存它們。後續的調用使用這些緩存數據,沒有數據庫的調用。
弄懂這些的最佳方式是閱讀函數文檔,以及使用類似 Query Monitor 的工具。
6. 不要在 SQL 查詢中使用 *
當然,這個更像 MySQL 的問題,但是我們習慣在 PHP 中編寫 SQL 代碼,所以都差不多。無論如何,如果可以避免的話,不要在 SQL 查詢里使用通配符,尤其是數據庫有很多列的時候。
你應該明確指定需要哪些行,並且僅僅獲取它們。這有助於減少所用資源,保護數據,以及讓事情變得儘可能清晰。
對於 SQL,你需要了解所有可用的函數,並且儘可能測試其速度。在計算均值、求和或計算類似數值時,要使用 SQL 函數而不是 PHP 函數。如果你不確定某個查詢的速度,測試它並且嘗試一些其它的編譯 — 之後使用最好的那個。
7. 不要信任用戶輸入
信任用戶輸入是不明智的。始終校驗、過濾、轉義、檢查並留好退路。用戶數據存在三個問題:我們開發者並沒有考慮每種可能性,它通常不正確,以及它可能是蓄意破壞。
經過周密考慮的系統可以防護這些威脅。要確保使用類似filter_var()的內建函數檢查適當的值,以及在處理數據庫時轉義(或預編譯)。
WordPress 擁有一些函數來解決問題。詳見文章校驗、轉義和過濾用戶數據。
8. 不要故作聰明
你的目標應該是編寫優雅的代碼,來更清晰地表達你的意圖。你可能能夠通過將任何東西縮短為一個單詞的變量,使用多層的三元邏輯,以及其它手段,從每個頁面中優化 0.01 秒。但這隻會給你和你周圍的人產生大麻煩。
合理命名變量,為代碼編寫文檔,優先選擇清晰而不是簡潔。甚至還可以更好,使用標準的面向對象代碼,它本身或多或少就是文檔,不需要一大堆內聯數值。
9. 不要重新發明輪子
PHP 到現在為止有很長時間了,網站被造出來的時間更長。很可能無論你需要造出什麼,一些人之前早就造出來了。不要害怕向他人尋求支持,Github是你的好朋友,Composer也是,Packagist也是。
從日誌工具到調色工具,從性能分析器到單元測試框架,從 Mailchimp API 到 Twitter Bootstrap,每個東西都可以通過按下按鍵(或者敲下命令)來獲取,使用它們吧!
10. 不要忽略其它語言
如果你是個 PHP 程序員,現在有個好機會去至少了解 HTML、CSS、JavaScript 和 MySQL。當你能夠更好地處理這些語言時,就是重新學習 JavaScript 的時機了。JavaScript 並不是 jQuery,你應該合理地學習 JavaScript 來更高效地使用它。
我也打算向你推薦學習面向對象的 PHP,它可以節省時間,並且在代碼規模更大時會變得更好。對於類似 C# 和 Java 的語言,在你了解 OOP 之後,它們也更易於理解。
通過了解包管理器、構建腳本、CoffeeScript、LESS、SASS、YAML 、腳本引擎和其它強大的工具來擴展你的知識面。我強烈向你推薦看一看其它框架,尤其是 Laravel。
當你使用它們出色完成任務時,學習 Ruby、RoR、Android、iPhone 和 Windows Phone 應用開發如何?你可能會認為這毫無意義,因為它們在你的舒適區和工作所需範圍之外,但是這就是它們的意義。每種語言都有一些要學習的實用的東西,以及從沒碰到的新知識。所有 PHP 頂級開發者都懂得很多其它編程語言,這並非偶然。
為什麼php eclispe裡面php文件不需要閉合標籤
php是弱語言,不閉合有很多好處。 沒有這個結束符,可以減少很多很多問題,比如說:header, setcookie, session_start這些動作之前不能有輸出,如果不小心在? 後邊加了不可見字符(多餘的空格、換行符)等破壞頁面顯示,就會報”Header already sent”錯誤,不寫的話不會有此問題。
看這段php代碼中,<P>標籤不用關閉嗎?也就是說不用寫</P>嗎?
是可以不用結束標籤的,但為了兼容和閱讀習慣以及健壯性,建議是寫上結尾標籤。
為什麼有時候 php 沒有寫閉合標籤結束符
其實不是有時候,而是如果一個文件裡面是純PHP代碼(?php ?標籤外不包含html)的話,是推薦不寫結束標籤的。
PHP官方手冊關於 tag,有以下內容:
If a file is pure PHP code, it is preferable to omit the PHP closing tag at the end of the file. This prevents accidental whitespace or new lines being added after the PHP closing tag, which may cause unwanted effects because PHP will start output buffering when there is no intention from the programmer to send any output at that point in the script.
意思是,如果文件是純PHP代碼,最好是省略文件最後的PHP閉合標籤。這樣可以避免在PHP閉合標籤後面的一些空白字符或者換行符帶來的一些有害影響,因為PHP會開啟輸出緩衝區用來輸出內容,而你很可能注意不到。
如果還是不太好理解的話,舉個例子:
?php
// php code
?
(這裡不是代碼,為了讓上面的兩個換行不被百度知道編輯器移除。)
上面代碼 ? 後面有兩個換行符,PHP只解析?php ?內的內容,外面的內容直接輸出,但是這兩個換行符很明顯並不是你需要的。如果去掉 ? 有不會有這個問題存在。
同理,?php 前面也不要有換行或者空格。
PHP手冊相關內容:
原創文章,作者:NICD,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/134330.html