Heim > Backend-Entwicklung > PHP-Tutorial > PHP-Codierungsstandards und Vorschläge für Neulinge

PHP-Codierungsstandards und Vorschläge für Neulinge

小云云
Freigeben: 2023-03-17 19:08:01
Original
1269 Leute haben es durchsucht

Wenn Sie ein exzellenter Programmierer sein wollen, sind gute Codierungsstandards sehr wichtig. Wie können Sie also guten Code schreiben? In diesem Artikel geben wir Ihnen einige PHP-Codierungsstandards und Vorschläge.

Codierungsspezifikationen

  • PHP-Codedateien müssen mit dem

<?php //开头

// 不结尾
Nach dem Login kopieren

  • PHP-Codedateien müssen in UTF-8 ohne BOM codiert werden.

例sublime, setting增加,"show_encoding" : true
Nach dem Login kopieren

  • Die Anzahl der Zeichen pro Zeile sollte 80 Zeichen nicht überschreiten

例,sublime
"word_wrap": "true",
"wrap_width": 80,
Nach dem Login kopieren

  • Taste 4 Leerzeichen antippen

例,sublime
"tab_size": 4,
Nach dem Login kopieren

  • Der PHP-Code sollte Definieren Sie nur Klassen (Merkmale)/Funktionen/Konstanten/andere Vorgänge, die Nebenwirkungen erzeugen (z. B. das Generieren einer Dateiausgabe und das Ändern von .ini-Konfigurationsdateien usw.), und Sie können nur eine auswählen.

例,
a.php
class A
{

}

b.php
function demo()
{

}

c.php
define(&#39;A&#39;, value);

d.php
ini_set(&#39;some_vars&#39;, value);
Nach dem Login kopieren

  • Die Benennung von Klassen/Eigenschaften/Schnittstellen muss der Namenskonvention von StudlyCaps folgen, beginnend mit einem Großbuchstaben.

class StudlyCaps
{

}

trait StudlyCaps
{

}

Interface StudlyCaps
{

}
Nach dem Login kopieren

  • Konstanten in einer Klasse müssen großgeschrieben und durch Unterstriche getrennt werden.

define(&#39;FOO_BAR&#39;, &#39;something more&#39;);

const FOO_BAR = value;
Nach dem Login kopieren

  • Der Name der Methode (in Klasse/Merkmal) muss der Namenskonvention für Groß- und Kleinschreibung im CamelCase-Stil entsprechen mit Kleinbuchstaben.

class StudlyCaps
{
    public function studlyCaps()
    {
        // coding...
    }
}
Nach dem Login kopieren

  • Funktionsnamen müssen der Namenskonvention für Unterstriche im Snake_case-Stil entsprechen.

function snake_case()
{
    // coding...
}
Nach dem Login kopieren

  • Private (private) Methodennamen (in Klasse/Merkmal) müssen der Namenskonvention im _camelCase-Stil mit führenden Unterstrichen und Kleinbuchstaben entsprechen Beginnend mit dem Kamelfall.

class StudlyCaps
{
    private function _studlyCaps()
    {
        // coding...
    }
}
Nach dem Login kopieren

  • Das erste Wort des Methodennamens ist ein Verb.

class StudlyCaps
{
    public function doSomething()
    {
        // coding...
    }
}
Nach dem Login kopieren

  • Variablen müssen der Namenskonvention im CamelCase-Stil entsprechen, bei der mit Kleinbuchstaben begonnen wird.

class StudlyCaps
{
    public function doSomething()
    {
        $someVariable = &#39;demo&#39;;
        // coding...
    }
}
Nach dem Login kopieren

  • Wenn eine Methode/Funktion mehrere Parameter hat, muss zwischen

  • <🎜 ein Leerzeichen stehen >
class StudlyCaps
{
    public function doSomething($variableOne, $variableTwo)
    {
        // coding...
    }
}
Nach dem Login kopieren

  • Der Operator/Ausdruck muss ein Leerzeichen enthalten

$a = $b + $c;
$a = $b . $c;
Nach dem Login kopieren

  • Nach jedem Namespace-Deklarationsblock und jedem Use-Deklarationsblock muss eine Leerzeile eingefügt werden.

namespace Standard;
// 空一行
use Test\TestClass;//use引入类
// 空一行
Nach dem Login kopieren

  • Die öffnende Klammer der Klasse „{ „Muss in einer Zeile nach der Funktionsdeklaration, der schließenden Klammer, geschrieben werden „}“ muss ebenfalls in einer eigenen Zeile nach dem Funktionskörper geschrieben werden.

class StudlyCaps
{

}
Nach dem Login kopieren

  • Die öffnende Klammer { der Methode/Funktion muss in einer eigenen Zeile nach der Funktionsdeklaration geschrieben werden, und die schließende geschweifte Klammer} ist ebenfalls Es muss in einer eigenen Zeile nach dem Funktionskörper geschrieben werden.

class StudlyCaps
{
    public function studlyCaps()
    {
        // coding...
    }
}

function snake_case()
{
    // coding...
}
Nach dem Login kopieren

  • Die Attribute und Methoden der Klasse müssen Zugriffsmodifikatoren (privat, geschützt und öffentlich), abstrakt und endgültig hinzufügen muss vor dem Zugriffsmodifikator deklariert werden, und static muss nach dem Zugriffsmodifikator deklariert werden.

abstract class StudlyCaps
{
	abstract public function studlyCaps();

	final public static function studlyCapsOne()
	{

	}
}
Nach dem Login kopieren

  • Nach dem Schlüsselwort der Kontrollstruktur muss ein Leerzeichen stehen, beim Aufruf einer Methode darf es jedoch nicht sein oder Funktion.

if ($valueOne === $valueTwo) {
  // code...
}

switch ($valueThree) {
  case &#39;value&#39;:
    // code...
    break;

  default:
    // code...
    break;
}

do {
  // code...
} while ($valueFour <= 10);

while ($valueFive <= 10) {
  // code...
}

for ($i = 0; $i < $valueSix; $i++) {
  // code...
}

$demo = new Demo()
$demo->doSomething();

do_something(); </p>
<p></p>
<ul class=" list-paddingleft-2"><li>Die öffnende Klammer { der Kontrollstruktur muss in derselben Zeile wie die Deklaration und die schließende Klammer geschrieben werden } muss in einer eigenen Zeile nach dem Hauptteil geschrieben werden. <p></p>
</li></ul>
<pre class="brush:php;toolbar:false">if ($valueOne === $valueTwo) {
  // code...
}

switch ($valueThree) {
  case 'value':
    // code...
    break;

  default:
    // code...
    break;
}

do {
  // code...
} while ($valueFour <= 10);

while ($valueFive <= 10) {
  // code...
}

for ($i = 0; $i < $valueSix; $i++) {
  // code...
}
Nach dem Login kopieren

  • Nach der öffnenden linken Klammer und vor der schließenden rechten Klammer der Kontrollstruktur dürfen keine Leerzeichen stehen.

if ($valueOne === $valueTwo) {// 控制结构(右边和)左边不加空格
  // code...
}
Nach dem Login kopieren

Codierungsvorschläge

  • SQL ist zu lang

// heredoc语法
$sql = <<<SQL
SELECT delivery_id
FROM d_test
WHERE delivery_id
IN (123,234)
GROUP BY delivery_id
HAVING SUM(send_number) <= 0;
SQL;
Nach dem Login kopieren

  • if und andere Kontrollstrukturbedingungen sind zu lang

if ($a > 0
    && $b > 0
    && $c > 0
    && $d > 0
    && $e > 0) {

}
Nach dem Login kopieren

  • Methode Oder die Funktionsparameter sind mehr als drei Zeilenumbrüche

public function tooLangFunction(
      $valueOne   = '',
      $valueTwo   = '',
      $valueThree = '',
      $valueFour  = '',
      $valueFive  = '',
      $valueSix   = '')
{
    //coding...
}
Nach dem Login kopieren

  • Die Kettenoperation beträgt mehr als zwei

$this->nameTest->functionOne()
               ->functionTwo()
               ->functionThree();
Nach dem Login kopieren

  • Verwenden Sie nach Array php5.4 []

$a = [
    'aaa' => 'aaa',
    'bbb' => 'bbb'
];
Nach dem Login kopieren

  • Einfache Anführungszeichen Mehrere Anführungszeichen

    • Keine Variablen in der Zeichenfolge, einfache Anführungszeichen

    • Es gibt Variablen in der Zeichenfolge, doppelte Anführungszeichen

$str = 'str';
$arg = "$str";
Nach dem Login kopieren

  • Deklarieren Sie eine Klasse, Methode oder Funktion und fügen Sie eine Beschreibung und ein Attribut hinzu Beschreibung & Autor

/**
 * 类描述
 *
 * desc
 */
class StandardExample
{
  /**
   *  常量描述.
   *
   * @var string
   */
  const THIS_IS_A_CONST = '';

  /**
   * 属性描述.
   *
   * @var string
   */
  public $nameTest = '';

  /**
   * 构造函数.
   *
   * 构造函数描述
   * @author name <email>
   * @param  string $value 形参名称/描述
   * @return 返回值类型        返回值描述
   * 返回值类型:string,array,object,mixed(多种,不确定的),void(无返回值)
   */
  public function __construct($value = '')
  {
    // coding...
  }
Nach dem Login kopieren

  • API-Methode liefert Testbeispielbeispiel

/**
 * 成员方法名称.
 *
 * 成员方法描述
 *
 * @param  string $value 形参名称/描述
 *
 * @example domain/api/controller/action?argu1=111&argu2=222
 */
public function testFunction($value = '')
{
    // code...
}
Nach dem Login kopieren

  • Verwenden Sie try…catch…

try {

    // coding...

} catch (\Exception $e) {
  // coding...
}
Nach dem Login kopieren

  • Kontinuierlich mehrere Methoden aufrufen ( mehr als 3) mit foreach

// 改写doSome为doSomething
class StandardExample
{
  /**
   * 方法列表
   *
   * @var array
   */
  private $_functionList = [];

  public function __construct($functionList = array())
  {
    $this->_functionList = $value;
  }

  public function doSome()
  {
    $this->functionOne();
    $this->functionTwo();
    $this->functionThree();
    $this->functionFour();
  }

  public function doSomething()
  {
      foreach($this->_functionList as $function) {
          $this->$function();
      }
  }

  ...
}
Nach dem Login kopieren

  • Urheberrechtserklärung oben in der Datei

// +----------------------------------------------------------------------
// | Company Name  xx服务
// +----------------------------------------------------------------------
// | Copyright (c) 2017 http://domain All rights reserved.
// +----------------------------------------------------------------------
// | Author: name <email>
// +----------------------------------------------------------------------
Nach dem Login kopieren

以上内容就给新手程序员的一些编写代码的规范及建议,希望能帮助到大家。

相关推荐:

怎样优化自己的JavaScript代码

PHP 代码的复用简单教程

PHP 代码规范

Das obige ist der detaillierte Inhalt vonPHP-Codierungsstandards und Vorschläge für Neulinge. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage