<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 代碼檢查 在這個頁面中: * 代碼檢查 * [代碼分析基礎](#代碼分析基礎) * [檢查配置文件](#檢查配置文件) * [檢查嚴重性](#檢查嚴重性) * [檢查區塊](#檢查區塊) * [代碼檢查的例子](#代碼檢查的例子) * [定位無作用代碼](#定位無作用代碼) * [高亮未使用聲明](#高亮未使用聲明) * [未解決的JavaScript函數和方法](#未解決的JavaScript函數和方法) * [PHP代碼檢查例子](#PHP代碼檢查例子) * [訪問檢查設置](/如何使用/常規指南/代碼檢查/訪問檢查設置.md) * [分析檢查結果](/如何使用/常規指南/代碼檢查/分析檢查結果.md) * [配置檢查嚴重性](/如何使用/常規指南/代碼檢查/配置檢查嚴重性.md) * [改變當前文件高亮級別](/如何使用/常規指南/代碼檢查/改變當前文件高亮級別.md) * [自定義配置文件](/如何使用/常規指南/代碼檢查/自定義配置文件.md) * [改變區塊順序](/如何使用/常規指南/代碼檢查/改變區塊順序.md) * [導出檢查結果](/如何使用/常規指南/代碼檢查/導出檢查結果.md) * [解決問題](/如何使用/常規指南/代碼檢查/解決問題.md) * [抑制檢查](/如何使用/常規指南/代碼檢查/抑制檢查.md) * [運行檢查](/如何使用/常規指南/代碼檢查/運行檢查.md) * [通過名稱運行檢查](/如何使用/常規指南/代碼檢查/通過名稱運行檢查.md) * [離線運行檢查](/如何使用/常規指南/代碼檢查/離線運行檢查.md) * [自動應用快速修復](/如何使用/常規指南/代碼檢查/自動應用快速修復.md) ## <span id='代碼分析基礎'>代碼分析基礎</span> PhpStorm有健壯、快速、靈活的靜態代碼分析功能。它發現編譯和運行錯誤,建議改正和改善在實際編譯之前。 PhpStorm執行代碼分析通過對代碼進行檢查。有大量PHP和其他支持語言的檢查。 檢查不僅檢測編譯錯誤,也辨別無效代碼。每當你有不可訪問代碼,未使用代碼,非限定字符串,未解析方法,內存泄漏甚至是拼寫問題 - 你將極快的找到這些問題。 代碼分析可以用以下幾種方式執行: * 默認的,PhpStorm分析所有打開的文件并在編輯器右側高亮顯示所有發現的代碼問題。在編輯器右側可以查看整個文件的分析狀態(右上角的圖標)。 當發現錯誤,圖標顯示為![錯誤](http://image.jellychen.cn/uploads/2016/11/fail.png);在警告的情況下為![警告](http://image.jellychen.cn/uploads/2016/11/warning.png);如果都沒問題,圖標顯示為![正常](http://image.jellychen.cn/uploads/2016/11/ok.png) * 作為選擇的,可以在[大部分模式](/如何使用/常規指南/代碼檢查/運行檢查.md)下對指定的范圍運行代碼分析,甚至是整個項目一樣大的范圍。 * 如果需要,可以在指定的范圍內[運行單一的代碼檢查](/如何使用/常規指南/代碼檢查/通過名稱運行檢查.md) 對大多數發現的問題,PhpStorm提供[快速修復建議](/如何使用/常規指南/代碼檢查/解決問題.md)。你可以在文件中快速審查錯誤通過按`F2`和`Shift+F2`在高亮行之間跳轉。 更多信息和程序化描述 ,參見[配置檢查嚴重性](/如何使用/常規指南/代碼檢查/配置檢查嚴重性.md) ## <span id='檢查配置文件'>檢查配置文件</span> 當你檢查代碼,可以告訴PhpStorm你想查看那種檢查類型的問題并獲取相關的報告。這樣配置可以儲存為**檢查配置文件**。 一個檢查配置文件定義要查找的問題類型,例如,某些檢查項的[啟用/禁用](/如何使用/常規指南/代碼檢查/禁用和啟用檢查.md)狀態和他們的[嚴重性](/如何使用/常規指南/代碼檢查/配置檢查嚴重性.md),配置文件在[檢查](/參考/工具窗參考/檢查工具窗.md)設置頁面中配置。 要設置當前檢查配置文件(在當前編輯器中用來實時代碼分析),僅僅在[檢查](/)設置頁面中選中它并應用變更。當你[運行代碼分析](/如何使用/常規指南/代碼檢查/運行檢查.md)或[執行單一檢查](/如何使用/常規指南/代碼檢查/通過名稱運行檢查.md),可以指定對每個運行使用哪個配置文件。 <span id='基本配置文件的類型'>檢查配置文件可以應用于整個IDE或指定的項目:</span> * **項目配置文件**是可以分享的并且可以讓團隊成員通過VCS訪問。它們儲存在項目目錄:`<project>/.idea/inspectionProfiles` * **IDE配置文件**僅作為個人使用并儲存在`USER_HOME/.<PhpStorm version>/config/inspection`目錄的XML文件中。 PhpStorm自帶以下預定義檢查配置文件: * **默認**:這個本地(IDE級別)配置文件僅作為個人使用,應用于所有項目,并儲存在`USER_HOME/.<PhpStorm version>/config/inspection`目錄的XML文件中。 * **項目默認**:當新的項目被創建時,項目默認配置文件從[項目模板設置](/如何使用/常規指南/配置項目和IDE設置/訪問默認設置.md)中拷貝。該配置文件是可分享的并應用于當前項目。 當項目創建后,任意項目默認配置文件的修改將被其他項目忽略。 當[項目模板設置](/如何使用/常規指南/配置項目和IDE設置/訪問默認設置.md)中的項目默認配置文件被修改了,改變的配置文件將應用于所有新創建的項目,但已存在的項目將不受影響因為它們已經有了配置文件的副本。 項目默認配置文件在`<project>/.idea/inspectionProfiles`目錄中儲存為`Project_Default.xml`文件。 一個項目可以根據需要有許多檢查配置文件。有兩種方法創建新的配置文件:可以從項目默認配置文件的副本[添加新的配置文件](/如何使用/常規指南/代碼檢查/自定義配置文件.md#創建和復制配置文件)或[復制](/如何使用/常規指南/代碼檢查/自定義配置文件.md#創建和復制配置文件)當前選擇的配置文件。新創建的配置文件儲存為XML文件,位置基于[基本配置文件的類型](/#基本配置文件的類型) 每當一些對配置文件的變更被執行和接受時`<profile_name>.xml`檢查配置文件中出現相應的項。該文件僅儲存與默認配置文件不同的項。 更多詳情參考[自定義配置文件](/如何使用/常規指南/代碼檢查/自定義配置文件.md)章節。 ## <span id='檢查嚴重性'>檢查嚴重性</span> 檢查嚴重性表示發現的代碼問題對整個項目的嚴重性并決定在編輯器中如何高亮顯示發現的問題。默認的,每個檢查有以下嚴重性級別之一: * **服務器問題**![服務器問題](http://image.jellychen.cn/uploads/2016/11/server_problem.png) * **打字錯誤**![打字錯誤](http://image.jellychen.cn/uploads/2016/11/typo.png) * **信息**![信息](http://image.jellychen.cn/uploads/2016/11/info.png) * **弱警告**![弱警告](http://image.jellychen.cn/uploads/2016/11/weak_warning.png) * **警告**![警告](http://image.jellychen.cn/uploads/2016/11/warning.png) * **錯誤**![錯誤](http://image.jellychen.cn/uploads/2016/11/error.png) 可以為每個檢查項增加或減少嚴重性級別。也就是,可以強制PhpStorm顯示警告作為錯誤或弱警告。按相同的方法,最初的弱警告可以顯示為警告或錯誤,或者僅作為信息。 也可以配置每個嚴重性級別所高亮顯示的顏色和字體。除此以外,可以創建自定義嚴重性級別并可以對指定檢查設置它們。 如果需要,可以在[不同的范圍內](/如何使用/常規指南/代碼檢查/改變區塊順序.md)對同一個檢查設置不同的嚴重性級別。 所有上述的檢查修改將儲存在[檢查設置](#檢查配置文件)中當前選中的[檢查配置文件](/如何使用/常規指南/代碼檢查/訪問檢查設置.md)并且被應用當配置文件被使用時。 ## <span id='檢查區塊'>檢查區塊</span> 默認的,所有可用的代碼檢查應用于所有項目文件。如果需要,可以對不同[區塊](/參考/設置參數對話框/外觀行為/區塊.md)獨立配置每個代碼檢查([啟用/禁用](/如何使用/常規指南/代碼檢查/禁用和啟用檢查.md),[改變它的嚴重性級別](/如何使用/常規指南/代碼檢查/配置檢查嚴重性.md)和其他選項)。這樣配置,像任意其他的檢查設置 ,被保存并應用于指定[配置文件](#檢查配置文件)的一部分。 可能有復雜的情況當不同區塊關聯配置不同的檢查。當在文件中執行的檢查屬于一些或所有其它區塊,設置為最高優先級的配置將被應用。優先級設置在[檢查設置](/如何使用/常規指南/代碼檢查/訪問檢查設置.md)頁面中指定位置的區塊檢查中配置:最頂部的配置有最高優先級。其它位置的配置的優先級較低。 更多信息和規程描述,參見[對不同范圍配置檢查](如何使用/常規指南/代碼檢查/改變區塊順序.md) ## <span id='代碼檢查的例子'>代碼檢查的例子</span> 在[檢查](/參考/設置參數對話框/編輯器/檢查.md)頁面,所有檢查項按類別分組。分析代碼最常見的任務是: * 查找可能的BUGS * 定位無作用代碼 * 檢測性能問題 * 改善代碼結構和可維護性 * 遵循代碼指南和標準 * 遵循規范 ### <span id='定位無作用代碼'>定位無作用代碼</span> PhpStorm在編輯器中高亮顯示無作用代碼塊。無作用代碼是在應用程序運行期間從不會訪問的代碼。也許,你甚至在項目中不需要這部分代碼。根據情況,這些代碼可能被作為BUG或冗余。無論如何,它減少應用程序的性能并增加維護的復雜度。這有個例子。 所謂的常量條件 - 例如,條件從來不會遇見或總是為真。在這種情況下,相關的代碼不可訪問并且實際上是無作用代碼。 ![無作用代碼](http://image.jellychen.cn/uploads/2016/11/code_locating.png) PhpStorm高亮if條件如果它總是為真。所以這部分用else環繞的代碼實際上是無作用代碼因為它從不執行。 ### <span id='高亮未使用聲明'>高亮未使用聲明</span> PhpStorm也可以立即高亮顯示整個項目中都不使用的Java類,方法和字段通過未使用聲明檢查。各種Java EE `@Inject`注釋,測試代碼入口點和其它隱式依賴配置,未使用聲明檢查相當重視這些部分。 ### <span id='未解析的JavaScript函數和方法'>未解析的JavaScript函數和方法</span> 這個檢查發現引用定義不明確的JavaScript函數和方法。 ![未解析的JavaScript函數和方法](http://image.jellychen.cn/uploads/2016/11/js_unresolved_function_or_method.png) ### <span id='PHP代碼檢查例子'>PHP代碼檢查例子</span> * **未解析的包含** 這個檢查發現包含不存在的文件并建議兩種快速修復:用指定的名稱創建文件或使用PHP文檔注釋。 ![未解析的包含](http://image.jellychen.cn/uploads/2016/11/include_does_not_exist.png) * **動態方法被作為靜態調用** 這個檢查項檢查是否一個靜態方法調用應用于一個靜態方法。 ![動態方法被作為靜態調用](http://image.jellychen.cn/uploads/2016/11/dynamic_mathod_called_as_static.png) `do_something()`方法被作為靜態調用但實際是動態方法。 * **類中未實現的抽象方法** 這個檢查項檢查是否從抽象類繼承的類是否明確的聲明為抽象或從超類繼承的方法是否實現。 ![類中未實現的抽象方法](http://image.jellychen.cn/uploads/2016/11/unimplemented_abstract_method_in_class.png) `ConcreteClass`類是從超類`AbstractClass`繼承的并且沒有明確的聲明為抽象。與此同時,從`AbstractClass`類繼承的函數`GetValue()`沒有被實現。 * **參數類型** PHP變量沒有類型,因此基本上變量類型在函數定義的時候沒有指定。然而,如果一個參數明確的定義了,函數被調用時參數應該為合適的類型。 ![參數類型](http://image.jellychen.cn/uploads/2016/11/parameter_type_inspection.png) 函數`do_something`指定參數類型為`integer`,但調用時的參數為`string`。 * **未定義的類常量** 這個檢查項檢查在類中引用的常量沒有實際被定義。 ![未定義的類常量](http://image.jellychen.cn/uploads/2016/11/undefined_constant_in_class.png) 常量`NotExistingConst`在類`Animal`中被作為常量引用,但類中實際上沒有定義。 * **未定義常量檢查** 這個檢查項檢查引用的常量在檢查范圍內沒有實際被定義。 ![未定義的常量](http://image.jellychen.cn/uploads/2016/11/undefined_constant_in_scope.png) 被引用的常量`UndefinedConst`在檢查區塊中沒有被定義。 * **未定義的類** 這個檢查項檢查引用的類在檢查范圍內沒有實際被定義。 ![未定義的類](http://image.jellychen.cn/uploads/2016/11/undefined_class.png) 被引用的類`NotExistingClass `沒有被定義。 * **未定義字段** 這個檢查項檢查引用的類的字段在類內沒有實際被定義。 ![未定義字段](http://image.jellychen.cn/uploads/2016/11/undefined_field.png) `$obj`變量是類`Animal`的一個實例。`$var`的申明包含了類`Animal`中`field`字段的引用,但是該字段沒有在類中聲明。 在PHP環境中,未定義的字段和未定義的方法檢查可能報告一些錯誤當實際上沒有問題發生。這個會發生在嘗試訪問屬性或給屬性賦值,這些屬性可能沒有實際定義但引用的類包含get和set魔術方法。這應該不會報告錯誤因為這些方法每次調用或引用未定義的屬性,然而,PhpStorm任然將它們作為錯誤或警告,基于你在檢查頁面設定的嚴重性級別。 要在這種情況下抑制未定義方法的報告,[重新配置檢查嚴重性](/如何使用/常規指南/代碼檢查/配置檢查嚴重性.md)。要做到這個,打開設置對話框的[檢查](/參考/設置參數對話框/編輯器/檢查.md)頁面,點擊列表中的檢查名稱并在選項區域選擇**Downgrade severity if \_\_magic methods are present in class**。在這之后,這種情況下未定義的屬性將比通常設置顯示低一級的嚴重性,默認的,用信息級別來代替警告級別。 要抑制未定義字段不相干的報告,清空**Notify about access to a field via magic method**和**Notify about PHP dynamic field declaration**復選框。當這些復選框選中時,PhpStorm報告的錯誤甚至包含`__get()`和`__set()`魔術方法。 * **調用未定義的函數** 這個檢查項檢查在檢查范圍內沒有定義的函數。 ![調用未定義的函數](http://image.jellychen.cn/uploads/2016/11/undefined_function_inspection.png) 調用的方法`undefined_function()`沒有在檢測范圍內定義。 * **未定義的變量** 這個檢查項檢查沒有在檢查范圍內定義和初始化的變量。PHP不需要每個變量應該被聲明和初始化。PHP可以實時初始化這些變量并分配空置。然而,這個檢查項可以檢查到這種差異。 未定義的變量檢查可以在設置對話框的檢查頁面中通過勾選復選框來配置。 * **在全局空間中檢查**:選擇復選框來運行檢查不在函數方法,類和命名空間中的變量,也就是[全局空間](http://php.net/manual/en/language.namespaces.global.php) ![在全局空間中檢查](http://image.jellychen.cn/uploads/2016/11/ps_undefined_var_global_space_on.png) * **報告可能沒有定義的變量**:選擇復選框來顯示警告即使變量的定義沒有明確的缺失。這種情況可能發生當這個變量在多個路徑中使用并且一些地方不能到達,例如,`if()`語句: ![報告可能沒有定義的變量](http://image.jellychen.cn/uploads/2016/11/ps_undefined_var_if_statement.png) * **忽略'include'和'require'語句**:抑制檢查包含`include**和**require`語句的范圍。如果復選框沒有勾選,PhpStorm處理這種定義在類中的變量并通過這種語句引用的不會報告錯誤。如果復選框被選中,未定義的變量錯誤將報告。 ![忽略'include'和'require'語句](http://image.jellychen.cn/uploads/2016/11/undefined_variable_inspection.png) # 另請參閱: 規程: * [意向動作](/如何使用/常規指南/意向動作/README.md) 參考: * [檢查](/參考/設置參數對話框/編輯器/檢查.md) * [區塊](/參考/設置參數對話框/外觀行為/區塊.md) * [檢查工具窗](/參考/工具窗參考/檢查工具窗.md)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看