<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 文件格式 - #### PHP標簽 > 關閉PHP標簽僅包含PHP代碼的文件應始終省略關閉的PHP標記(?>)。否則可能導致白屏。 - #### 縮進 > 所有縮進為tab而非空格。當需要適當補全時,才可使用空格處理。 ```php // indented 2 tabs $var = 'something'; // indented with tabs and aligned value & comments $variable = 'else'; // with those above/below using spaces ``` - #### 回車 > 采用unix的換行格式。「Unix-style LF」 - #### 命名文件 > 所有文件名,以小寫命名。 - #### 編碼方式 > utf-8,with NO BOM。 ### 命名約定 - #### 命名空間 > 所有核心類必須在Fuel \ Core命名空間下。 ```PHP namespace Fuel\Core; ``` - #### 類 > 類名應使用下劃線分隔單詞,并且類名中的每個單詞均應以大寫字母開頭。下劃線將在自動加載期間轉換為目錄分隔符。 > > **原則上不使用駝峰命名**。 ```php namespace Fuel\Core; class Session { } ``` ``` php namespace Fuel\Core; class Session_Cookie extends Session_Driver { } ``` <!-- 如果按以上命名,將訪問以下文件路徑 --> ``` php core/classes/session.php core/classes/session/cookie.php ``` - 方法 > 與類名一樣,方法名應使用下劃線分隔單詞,而不是駝峰。方法名稱也應該全部小寫。始終應包括可見性( public, protected, private )。 - #### 變量 - 變量名稱應簡潔明了,并且僅包含小寫字母和下劃線。循環迭代器應較短,最好是單個字符。 ``` php $first_name $buffer for ($i = 0; $i < $max; $i++) ``` - #### 常量 > 變量名稱應簡潔明了,并且僅包含小寫字母和下劃線。循環迭代器應較短,最好是單個字符。 ``` php MY_CONSTANT TEMPLATE_PATH TEXT_DEFAULT ``` 不建議使用全局常量,并且應將其絕對降至最低。在可能的情況下,使用類常量來明確其范圍,用法和含義。 ### 關鍵詞 > 關鍵字,例如 `true`,`false`,`null`,`as` 等,應該都是小寫的,因為大寫是為常量保留的,變量類型 也應當小寫,比如 `array`,`integer`,`string` ### 強制類型轉換 > 不建議使用類型轉換。PHP是一種弱類型語言,有時類型轉換規則非常模糊。它們可能會導致意外的行為,從而可能會導致很難發現錯誤。而是在轉換之前進行內容檢查,以確保變量包含期望值。 ### 控制結構 結構的關鍵字,如if,for,foreach,while,switch應當后跟一個空格。花括號應放在新行上,并break具有與大小寫相同的選項卡。break與case 同級。 ~~~ if ($arg === true) { //do something here } elseif ($arg === null) { //do something else here } else { //catch all do something here } foreach ($array as $key => $value) { //loop here } for ($i = 0; $i < $max; $i++) { //loop here } while ($i < $max) { //loop here } do { //loop here } while ($i < $max) switch ($var) { case 'value1': //do something here break; default : //do something here break; } ~~~ ##### 替代if語句 > 在某些情況下,使用完成的 `if` 語句使代碼變得太長。建議使用三目運算,來完成需要的判斷。 ~~~ // instead of if (isset($var)) { Config::set('var', $var); } isset($var) and Config::set('var', $var); // instead of if ( ! isset($var)) { $var = Config::get('var'); } isset($var) or $var = Config::get('var'); // DON'T DO THIS Uri::segment(3) and $var = Uri::segment(3); Uri::segment(3) or $var = 'default'; // This is better: if (Uri::segment(3)) { $var = Uri::segment(3); } else { $var = 'default'; } // Or this: $var = Uri::segment(3) ? Uri::segment(3) : 'default'; // Or even better, this: $var = Uri::segment(3) ?: 'default'; ~~~ ### 比較,邏輯運算符 > 比較函數/方法的返回值和變量,應該了解比較兩邊的數據類型。在比較返回值時 應,盡量使用對類型敏感的絕對等于或絕對不等于,使用`and`和`or`,替換` &`和`||` 來提高代碼可讀性。在`!`使用時,應在左右都留有空格。 ~~~ if ($var == false and $other_var != 'some_value') if ($var === false or my_function() !== false) if ( ! $var) ~~~ #### 類/接口聲明 > 類/接口聲明在以下行中有左括號: ~~~ class Session { } ~~~ > 如果類為空,則大括號將與定義位于同一行: ~~~ class Empty_Class { } ~~~ #### 功能/方法/關閉聲明 > 功能/方法/閉合開口支架必須始終從新行開始,并具有與其結構相同的縮進。 ~~~ class Session { public static function get_flash($name, $data) { $closure = function($a, $b) { // Your closure code here } } } ~~~ #### 變量 > 初始化變量時,每行應聲明一個變量。為了提高代碼的可讀性,它們應分別放在單獨的行上。適當的對齊值和注釋。 ~~~ $var = ''; // do each on its own line $other_var = ''; // do each on its own line ~~~ #### 括號和括號 > 初始括號/括號之前或之后不得有空格。合上括號/括號之前不能有空格。 ~~~ $array = array(1, 2, 3, 4); $array['my_index'] = 'something'; for ($i = 0; $i < $max; $i++) ~~~ #### 字符串引號 > 單引號優于雙引號。它可以防止變量和控制字符的意外或意外擴展。 #### 級聯 > 字符串串聯不應在連接的部分周圍包含空格。 ~~~ //yes $string = 'my string '.$var.' the rest of my string'; //no $string = 'my string ' . $var . ' the rest of my string'; ~~~ #### 運算符 ~~~ $var = 'something'; if ($var == 'something') //space before and after logical operator $var = $some_var + $other_var; //space before and after math operator $var++; // no space before increment ++$var; //no space after increment ~~~ ##### 數組點符號 盡管嚴格地說,它不是編碼標準,但是在框架類和本文檔中已使用了很多,并且由于它不是通用的PHP表示法,因此可能會使剛接觸框架的人感到困惑。 ~~~ // when you see "always_load.packages = array()", it is shorthand for: array("always_load" => array("packages" => array(...) ) ); ~~~ Arr類以及Lang,Config和Session類使用此表示法來快速訪問多維數組中的各個元素。 ~~~ // when you have an array structure like this $array = array( "always_load" => array( "packages" => array( "orm", "package" => "/my/special/package.php", ) ) ); // then this will return "/my/special/package.php": $path = Arr::get($array, 'always_load.packages.package'); ~~~
                  <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>

                              哎呀哎呀视频在线观看