当前位置:首页 > PHP教程 > php应用 > 列表

PHP代码编写规范

发布:smiling 来源: PHP粉丝网  添加日期:2022-06-11 08:23:27 浏览: 评论:0 

不添加不需要的上下文

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

差:

  1. <?php class Car{ 
  2.  
  3.     public $carMake
  4.  
  5.     public $carModel
  6.  
  7.     public $carColor
  8.  
  9.     //... 
  10.  
  11.     } 

好:

  1. <?php class Car{ 
  2.  
  3.     public $make
  4.  
  5.     public $model
  6.  
  7.     public $color
  8.  
  9.     //... 
  10.  
  11.     } 

函数参数数量(理想情况是 2 个以下)

限制函数参数的数量是非常重要的,因为它让函数更容易测试,参数超过三个的话,你必须用每个单独的参数测试大量不同的情况。

无参数是理想的情况。一个或两个参数是可以的,但应该避免三个。通常,如果你有两个以上的参数,那么你的函数试图完成太多的功能,若不是,大多数时候,较高级的对象就足以作为参数(译者注:比如数组、对象)。

差:

  1. <?php function createMenu($title$body$buttonText$cancellable) { 
  2.  
  3.     // ...} 

好:

  1. <?php class MenuConfig { 
  2.  
  3.     public $title
  4.  
  5.     public $body
  6.  
  7.     public $buttonText
  8.  
  9.     public $cancellable = false;}$config = new MenuConfig();$config->title = 'Foo';$config->body = 'Bar';$config->buttonText = 'Baz';$config->cancellable = true;function createMenu(MenuConfig $config) { 
  10.  
  11.     // ...} 

一个函数应该只完成一件事

这是软件工程中最重要的规则。当函数做的事多于一件事情时,他们更难编写和测试。 当你可以将函数隔离成一个动作时,可以轻松重构,代码也将更易读。

差:

  1. <?phpfunction emailClients($clients) { 
  2.  
  3.     foreach ($clients as $client) { 
  4.  
  5.         $clientRecord = $db->find($client); 
  6.  
  7.         if ($clientRecord->isActive()) { 
  8.  
  9.             email($client); 
  10.  
  11.         } 
  12.  
  13.     }} 

好:

  1. function emailClients($clients) { 
  2.  
  3.     $activeClients = activeClients($clients); 
  4.  
  5.     array_walk($activeClients'email'); 
  6.  
  7.  
  8. function activeClients($clients) { 
  9.  
  10.     return array_filter($clients'isClientActive'); 
  11.  
  12.  
  13. function isClientActive($client) { 
  14.  
  15.     $clientRecord = $db->find($client); 
  16.  
  17.     return $clientRecord->isActive(); 
  18.  

使用 get 和 set 方法

在 PHP 中,可以为方法设置 public、protected 和 private 关键字,可以控制对象上的属性可见性。这是面向对象的设计原则中的开放/封闭原则的一部分。

差:

  1. class BankAccount 
  2.  
  3.  
  4.     public $balance = 1000; 
  5.  
  6.  
  7. $bankAccount = new BankAccount(); 
  8.  
  9. // Buy shoes... 
  10.  
  11. $bankAccount->balance -= 100; 

好:

  1. class BankAccount 
  2.  
  3.  
  4.     private $balance
  5.  
  6.     public function __construct($balance = 1000) 
  7.  
  8.     { 
  9.  
  10.       $this->balance = $balance
  11.  
  12.     } 
  13.  
  14.     public function withdrawBalance($amount
  15.  
  16.     { 
  17.  
  18.         if ($amount > $this->balance) { 
  19.  
  20.             throw new \Exception('Amount greater than available balance.'); 
  21.  
  22.         } 
  23.  
  24.         $this->balance -= $amount
  25.  
  26.     } 
  27.  
  28.     public function depositBalance($amount
  29.  
  30.     { 
  31.  
  32.         $this->balance += $amount
  33.  
  34.     } 
  35.  
  36.     public function getBalance() 
  37.  
  38.     { 
  39.  
  40.         return $this->balance; 
  41.  
  42.     } 
  43.  
  44.  
  45. $bankAccount = new BankAccount(); 
  46.  
  47. // Buy shoes... 
  48.  
  49. $bankAccount->withdrawBalance($shoesPrice); 
  50.  
  51. // Get balance 
  52.  
  53. $balance = $bankAccount->getBalance();

Tags: PHP代码编写规范

分享到: