php檔案只要開始標籤而不要結尾標籤?

來源:互聯網
上載者:User
項目中有用到php yii架構, 今天看了規範文檔
https://github.com/yiisoft/yii/wiki/Core-framework-code-style

裡面有說道:php檔案只要開始標籤 不要結束標籤 ?>, 印象中好像有看到其他架構也這麼說過, 貌似會更安全, 為什麼, 哪裡有相關介紹?

回複內容:

項目中有用到php yii架構, 今天看了規範文檔
https://github.com/yiisoft/yii/wiki/Core-framework-code-style

裡面有說道:php檔案只要開始標籤 不要結束標籤 ?>, 印象中好像有看到其他架構也這麼說過, 貌似會更安全, 為什麼, 哪裡有相關介紹?

這是官方手冊上推薦的用法,手冊上有詳細說明:

如果檔案內容是純 PHP 代碼,最好在檔案末尾刪除 PHP 結束標記。這可以避免在 PHP 結束標記之後萬一意外加入了空格或者分行符號,會導致 PHP 開始輸出這些空白,而指令碼中此時並無輸出的意圖。

純 PHP 檔案必須省略關閉標籤、
檔案末尾必須空一行。
換彷彿必須是 LF。

這就是PSR-2風格指南裡的, 該指南是經過許多的開源項目風格調查之後總結的一個多數人使用的方法。 旨在讓不同的 PHP 項目之間切換, 或審閱別人代碼時, 能夠無縫開始, 降低熟悉風格的成本。 這個風格上的所有內容都是有一定意義的,比如省略關閉標籤主要是檔案 include 和 輸出內容不受幹擾的考量。 否則很有可能在你的關閉標籤後面摻雜東西到另一個檔案裡, 沒有經驗的人會很難排查錯誤。

www.php-fig.org

我這兩天翻譯個這個, yii2的風格, 基本是在psr2基礎上做少許修改(縮排四個空格改為tab),https://github.com/AbrahamGreyson/yii2-zh-cn/blob/master/internals/core-code-style.md

更正下,經過激烈的討論,yii2決定完全相容psr2, 移除tab縮排,改為更符合社區多數人習慣的4空格縮排。

一點題外話,這僅僅是代碼風格指南,最大的意義不是所有人都遵守它,而是在一個圈子內大家盡量維持一致,以便提高協作的效率,在這點上google有一篇文章專門講公司內部代碼規範的必要性。 大家支援並尊重該指南的基礎是, 不搞那麼多個人化,一切都按照大家約定的習慣來。 目前 PHP 已經有相當多大項目完全遵照這個風格。例如yii2 symfony2 laravel。如果你想在測試的時候整合風格的檢查, 可以安裝 PHP_CodeSniffer , 他能在構建的時候給你檢查風格是否符合你的設定。

另外注釋是另一個範疇了, 建議你用符合 PHPdoc 規範的注釋。 可以自動把你的代碼產生 api 手冊, 可以代替類圖 uml之類的東西。 快速查詢時比較方便。

如果使用閉合標籤,任何由開發人員,使用者,或者FTP應用程式插入閉合標籤後面的空格都有可能會引起多餘的輸出、php錯誤、之後的輸出無法顯示、空白頁。因此,所有的php檔案應該省略這個php閉合標籤,並插入一段注釋來標明這是檔案的底部並定位這個檔案在這個應用的相對路徑。這樣有利於你確定這個檔案已經結束而不是被刪節的。

摘自CI手冊

我昨天已經吃過虧了。檔案被require的時候,就會把多餘的東西發過去。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.