PHP代码编写规范

Guanhui
发布: 2023-04-08 15:36:01
转载
2429 人浏览过

不添加不需要的上下文

如果你的类名或对象名称有具体的含义,请不要重复该变量的名称。

差:

<?php class Car{
    public $carMake;
    public $carModel;
    public $carColor;
    //...
    }
登录后复制

好:

<?php class Car{
    public $make;
    public $model;
    public $color;
    //...
    }
登录后复制

函数参数数量(理想情况是 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 中,可以为方法设置 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中文网其他相关文章!

相关标签:
php
来源:zhihu.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!