PHPコード記述仕様

Guanhui
リリース: 2023-04-08 15:36:01
転載
2492 人が閲覧しました

不要なコンテキストを追加しないでください

クラス名またはオブジェクト名に特定の意味がある場合は、変数名を繰り返さないでください。

悪い:

<?php class Car{
    public $carMake;
    public $carModel;
    public $carColor;
    //...
    }
ログイン後にコピー

良い:

<?php class Car{
    public $make;
    public $model;
    public $color;
    //...
    }
ログイン後にコピー

関数パラメータの数 (理想的には 2 未満)

関数パラメータを制限するパラメーターの数は、関数のテストが容易になるため、非常に重要です。パラメーターが 3 つを超えると、それぞれのパラメーターでさまざまな状況をテストする必要があります。

パラメータがないのが理想的な状況です。 1 つまたは 2 つのパラメーターは問題ありませんが、3 つを使用することは避けてください。通常、パラメータが 3 つ以上ある場合、関数は多くのことを実行しようとしていますが、そうでない場合は、ほとんどの場合、上位レベルのオブジェクト (翻訳者注: 配列、オブジェクトなど) がパラメータとして十分です。

悪い:

<?php function createMenu($title, $body, $buttonText, $cancellable) {
    // ...}
ログイン後にコピー

良い:

<?php class MenuConfig {
    public $title;
    public $body;
    public $buttonText;
    public $cancellable = false;}$config = new MenuConfig();$config->title = &#39;Foo&#39;;$config->body = &#39;Bar&#39;;$config->buttonText = &#39;Baz&#39;;$config->cancellable = true;function createMenu(MenuConfig $config) {
    // ...}
ログイン後にコピー

関数は 1 つのことだけを行うべきです

これはソフトウェア エンジニアリングにおける最も重要なルールです。関数が複数のことを実行する場合、関数の作成とテストは難しくなります。関数をアクションに分離できれば、簡単にリファクタリングでき、コードが読みやすくなります。

悪い例:

<?phpfunction emailClients($clients) {
    foreach ($clients as $client) {
        $clientRecord = $db->find($client);
        if ($clientRecord->isActive()) {
            email($client);
        }
    }}
ログイン後にコピー

良い例:

function emailClients($clients) {
    $activeClients = activeClients($clients);
    array_walk($activeClients, &#39;email&#39;);
}
function activeClients($clients) {
    return array_filter($clients, &#39;isClientActive&#39;);
}
function isClientActive($client) {
    $clientRecord = $db->find($client);
    return $clientRecord->isActive();
}
ログイン後にコピー

get メソッドと set メソッドを使用する

PHP では、メソッドに public、protected、および private キーワードを設定できます。を使用すると、オブジェクトのプロパティの表示/非表示を制御できます。これは、オブジェクト指向設計のオープン/クローズ原則の一部です。

悪い:

class BankAccount
{
    public $balance = 1000;
}
$bankAccount = new BankAccount();
// Buy shoes...
$bankAccount->balance -= 100;
ログイン後にコピー

良い:

class BankAccount
{
    private $balance;
    public function __construct($balance = 1000)
    {
      $this->balance = $balance;
    }
    public function withdrawBalance($amount)
    {
        if ($amount > $this->balance) {
            throw new \Exception(&#39;Amount greater than available balance.&#39;);
        }
        $this->balance -= $amount;
    }
    public function depositBalance($amount)
    {
        $this->balance += $amount;
    }
    public function getBalance()
    {
        return $this->balance;
    }
}
$bankAccount = new BankAccount();
// Buy shoes...
$bankAccount->withdrawBalance($shoesPrice);
// Get balance
$balance = $bankAccount->getBalance();
ログイン後にコピー

推奨チュートリアル: 「PHP チュートリアル

以上がPHPコード記述仕様の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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