PHP 코드 작성 사양

Guanhui
풀어 주다: 2023-04-08 15:36:01
앞으로
2430명이 탐색했습니다.

불필요한 컨텍스트를 추가하지 마세요

클래스 이름이나 객체 이름에 특정한 의미가 있는 경우 변수 이름을 반복하지 마세요.

나쁨:

<?php class Car{
    public $carMake;
    public $carModel;
    public $carColor;
    //...
    }
로그인 후 복사

좋음:

<?php class Car{
    public $make;
    public $model;
    public $color;
    //...
    }
로그인 후 복사

함수 매개변수 수(이상적으로는 2개 미만)

함수 매개변수 수를 제한하는 것은 매우 중요합니다. 매개변수가 3개 이상인 경우 함수를 더 쉽게 테스트할 수 있기 때문입니다. , 각 개별 매개변수를 사용하여 다양한 상황을 테스트해야 합니다.

매개변수가 없는 것이 이상적인 상황입니다. 하나 또는 두 개의 인수는 괜찮지만 세 개는 피해야 합니다. 일반적으로 매개변수가 2개 이상인 경우 함수가 너무 많은 작업을 수행하려고 하는 것입니다. 그렇지 않은 경우 대부분의 경우 상위 수준 개체를 매개변수로 사용하면 됩니다(번역자 참고 사항: 배열, 개체 등).

나쁨:

<?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) {
    // ...}
로그인 후 복사

함수는 한 가지 일만 해야 합니다.

이것은 소프트웨어 공학에서 가장 중요한 규칙입니다. 함수가 두 가지 이상의 작업을 수행하면 작성하고 테스트하기가 더 어렵습니다. 함수를 작업으로 분리할 수 있으면 쉽게 리팩터링할 수 있고 코드를 더 쉽게 읽을 수 있습니다.

나쁨:

<?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에서는 메소드에 대한 공개, 보호 및 비공개 키워드를 설정하여 객체의 속성 표시 여부를 제어할 수 있습니다. 이는 객체지향 디자인의 개방/폐쇄 원칙의 일부입니다.

나쁨:

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

위 내용은 PHP 코드 작성 사양의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:zhihu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!