PHPのコーディングスタイルの仕様を本当に理解していますか?

王林
リリース: 2023-02-23 11:58:01
転載
2029 人が閲覧しました

PHP は柔軟性があるため、コードを記述するときに多くの人が適切なコード仕様に注意を払わず、すでに柔軟な PHP コードが乱雑に見えます。実際、PSR 仕様の PSR-1 と PSR-2 は変更されています。 PHPのコーディングにはいくつかの仕様があり、それを守っていれば、柔軟なスクリプト言語を使っても非常に美しく整ったコードを書くことができます。まず、合格した PSR 仕様を見て、次に PSR-1 および PSR-2 仕様のいくつかの特定の要件を簡単に説明します

合格した PSR:

PHPのコーディングスタイルの仕様を本当に理解していますか?

PSR-1 基本コーディング仕様:

1タグの開閉
まず、PHP コードは

2. 副作用
PHP ファイルは、クラス、インターフェイス、関数などを宣言するか、論理演算 (たとえば、ファイルの読み取りと書き込み、またはブラウザへの出力の送信など)、両方ではありません。

3. 命名
#クラスの命名は、大文字で始まるキャメルケースの命名規則に従う必要があります。つまり、クラス名は大文字で始める必要があります。プロパティに名前を付ける必要はありませんが、一貫性を持たせる必要があります。メソッド名は、小文字で始まるキャメルケースの命名規則に準拠する必要があります。クラス定数内の文字はすべて大文字にする必要があり、単語はアンダースコアで区切られます。

PSR2 コーディング スタイル仕様:

1. PSR-1 では、PHP コードが タグで終わらず、空行で終わる必要があると規定しています。

2. namespace ステートメントの後に空行を挿入し、use ステートメント ブロックの後にも空行を挿入する必要があります。同じコード行に複数の use ステートメントを作成しないでください。


3. クラスの始まりと終わり

class キーワード、クラス名、extends キーワードとimplements キーワードは同じ行になければなりません。クラスが複数のインターフェイスを実装する場合、インターフェイス名はクラス宣言の同じ行に置くことも、別の行に置くこともできます。これらのインターフェイス名を複数行に配置する場合は、最初のインターフェイス名を単独の行に配置し、implements キーワードの後に​​続かないようにする必要があります。クラスの左中括弧 ({) は関数宣言の後の独自の行に記述する必要があり、閉じ中括弧 (}) もクラス本体の後の独自の行に記述する必要があります。つまり、クラス宣言は次のようになります。

class EarthGame extends Game implements
    Playable,   
    Savable
{    
    //类体
}
ログイン後にコピー

クラス名をクラス宣言と同じ行に置くこともできます。

class EarthGame extends Game implements Playble, Savable
{     
    //类体
}
ログイン後にコピー

4. 属性宣言

各属性にはアクセス修飾子 (パブリック、プライベート、または保護) が必要です。キーワード var を使用して属性を宣言することはできません。属性名の仕様は PSR-1 ですでに説明されています。アンダースコア、小文字のキャメルケースの命名、または大文字のキャメルケースの命名を使用できますが、一貫性を保つ必要があります。 (属性には小文字のキャメルケースを使用することを個人的にお勧めします)


5. メソッドの開始と終了

すべてのメソッドにはアクセス修飾子 (public、private、または protected) が必要です。アクセス修飾子は、abstract または Final の後、static の前になければなりません。デフォルト値を持つメソッドパラメータはパラメータリストの最後に配置する必要があります。


単一行宣言

メソッドの開始中括弧 ({) はメソッド名の後の単独の行に記述し、終了中括弧 (}) も単独で記述する必要があります。メソッド本体の後の行 (コードの後のメソッドの直後)。メソッドパラメータリストはスペースで始まったり終わったりしてはなりません(つまり、メソッドパラメータリストを括弧で囲む必要があります)。各パラメータでは、パラメータ名 (またはデフォルト値) の後にカンマが必要で、カンマの後にはスペースが必要です。以下に示すように、これは複雑に聞こえるかもしれません。

final public static function generateTile(int $diamondCount, bool $polluted = false)
{
   //方法体
 }
ログイン後にコピー

複数行の宣言

メソッドに多くのパラメーターがある場合、単一行のメソッド宣言は現実的ではありません。この時点で、各パラメーター (タイプ、パラメーター変数、デフォルト値、カンマを含む) が独自のインデント行に配置されるようにパラメーター リストを分割できます。この場合、閉じ括弧はパラメータ リストの後の行に、メソッド宣言の先頭に揃えて配置する必要があります。左中括弧 ({) は、同じ行の右括弧の後にスペースで区切って配置する必要があります。メソッド本体は新しい行で開始する必要があります。これも複雑に聞こえるかもしれませんが、次の例はこのルールを理解するのに役立ちます。

public function __construct(
    int $size,
    string $name,
    bool $warparound = false,
    bool $aliens = false
) {  
    //方法体
   }
ログイン後にコピー

6. 行とインデント

コードはタブではなく 4 つのスペースを使用してインデントする必要があります。エディターの設定を確認して、Tab キーが押されたときにタブの代わりに 4 つのスペースを使用するように設定できます。コードの各行は 120 文字以下にする必要があります。 ###

7、方法与函数调用
方法名称和开始圆括号之间不能有空格。方法调用中的参数列表的规则与方法声明中的参数列表规则相同。换言之,对于单行调用,开始圆括号后或结束圆括号前不能有空格。每个参数之后应该紧跟一个逗号,下一个参数前应该有一个空格。如果需要使用多行代码进行方法调用,那么每个参数应该自成一行并缩进,而且结束圆括号也应该自成一行。

$earthGanme = new EarthGame(   
   5,
   'earth', 
   true,
   true
);
$earthGame::generateTile(5, true);
ログイン後にコピー

8、流程控制
流程控制关键字(if、for、while等)后面必须紧跟一个空格。但是,开始圆括号后不能有空格。同样,结束圆括号前不能有空格。因此内容应该紧贴在括号内的。与类和(单行)函数声明相比,流程控制代码的开始花括号应该与结束圆括号在同一行。结束花括号应该自成一行。以下是一个简单的示例。

$title = [];for ($x = 0; $x < $diamondCount; $x++) {    if ($polluted) {
        $title[] = new PollutionDecorator(new DiamondDecorator(new Plains()));
    } else {
        $title[] = new DiamondDecorator(new Plains());
    }
}
ログイン後にコピー

想了解更多相关问题请访问PHP中文网:PHP视频教程

以上がPHPのコーディングスタイルの仕様を本当に理解していますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:cnblogs.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート