>  기사  >  백엔드 개발  >  초보자를 위한 PHP 코딩 표준 및 제안

초보자를 위한 PHP 코딩 표준 및 제안

小云云
小云云원래의
2017-12-05 11:14:211177검색

훌륭한 프로그래머가 되려면 좋은 코딩 표준이 매우 중요합니다. 그렇다면 어떻게 좋은 코드를 작성할 수 있을까요? 이 기사에서는 몇 가지 PHP 코딩 표준과 제안 사항을 제공합니다.

코딩 사양

  • PHP 코드 파일은

<?php //开头

// 不结尾

  • PHP 코드 파일은 BOM 없이 UTF-8로 인코딩되어야 합니다. ㅋㅋㅋ

    PHP 코드에는 클래스만 정의되어야 합니다. ( 특성)/함수/상수/부작용을 생성하는 기타 작업(예: 파일 출력 생성 및 .ini 구성 파일 수정 등)에서는 하나만 선택할 수 있습니다.

例sublime, setting增加,"show_encoding" : true

  • 클래스/특성/인터페이스의 명명은 대문자로 시작하는 StudlyCaps Camel Case 명명 규칙을 따라야 합니다.

例,sublime
"word_wrap": "true",
"wrap_width": 80,

  • 클래스의 상수는 대문자로 시작해야 하며 단어는 밑줄로 구분해야 합니다.

例,sublime
"tab_size": 4,

  • 메서드 이름(클래스/특성)은 소문자로 시작하는 CamelCase 스타일 Camel Case 명명 규칙을 준수해야 합니다.

例,
a.php
class A
{

}

b.php
function demo()
{

}

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

d.php
ini_set(&#39;some_vars&#39;, value);

  • 함수 이름은 snake_case 스타일 밑줄 명명 규칙을 준수해야 합니다.

class StudlyCaps
{

}

trait StudlyCaps
{

}

Interface StudlyCaps
{

}

  • Private(비공개) 메서드(클래스/특성 내) 이름은 앞에 밑줄, 소문자, 낙타 표기로 시작하는 _camelCase 스타일 명명 규칙을 준수해야 합니다.

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

const FOO_BAR = value;

  • 메소드 이름의 첫 번째 단어는 동사입니다.

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

  • 변수는 소문자로 시작하는 CamelCase의 CamelCase 명명 규칙을 준수해야 합니다.

function snake_case()
{
    // coding...
}

  • 메서드/함수에 여러 매개변수가 있는 경우 매개변수 사이에 공백이 있어야 합니다.

class StudlyCaps
{
    private function _studlyCaps()
    {
        // coding...
    }
}

  • 연산자/표현식에 공백이 있어야 합니다

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

  • 각 네임스페이스 선언 블록과 사용 선언 블록 뒤에는 빈 줄을 삽입해야 합니다.

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

  • 여는 중괄호 "{"는 함수 선언 뒤 한 줄에 써야 하고, 닫는 중괄호 "}"도 함수 본문 뒤에 한 줄에 써야 합니다.

class StudlyCaps
{
    public function doSomething($variableOne, $variableTwo)
    {
        // coding...
    }
}

  • 메서드/함수의 여는 중괄호 {는 함수 선언 뒤의 한 줄에 작성해야 하며, 닫는 중괄호 }도 함수 본문 뒤의 한 줄에 작성해야 합니다.

$a = $b + $c;
$a = $b . $c;

  • 클래스의 속성과 메서드에는 액세스 수정자(private, protected, public)를 추가해야 하며 abstract 및 final은 액세스 수정자 앞에 선언해야 하며 static은 액세스 수정자 뒤에 선언해야 합니다.

namespace Standard;
// 空一行
use Test\TestClass;//use引入类
// 空一行

  • 제어 구조의 키워드 뒤에는 공백이 있어야 하지만, 메서드나 함수를 호출할 때는 공백이 있어서는 안 됩니다.

class StudlyCaps
{

}

  • 제어구조체의 여는 중괄호 {는 선언문과 같은 줄에 써야 하고, 닫는 중괄호 }는 본문 다음 한 줄에 써야 합니다.

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

function snake_case()
{
    // coding...
}

  • 제어 구조의 여는 왼쪽 괄호 뒤와 닫는 오른쪽 괄호 앞에는 공백이 없어야 합니다.

abstract class StudlyCaps
{
	abstract public function studlyCaps();

	final public static function studlyCapsOne()
	{

	}
}

    코딩 제안
  • sql이 너무 깁니다

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>
<ul class=" list-paddingleft-2">
<li><p></p></li>및 기타 제어 구조 조건이 너무 긴 경우</ul>
<p></p>
<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...
}
  • 메서드 또는 함수 매개변수가 더 큽니다. 3개 이상의 개행

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

  • 2개 이상의 연쇄 연산

  • // 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;

  • php5.4 이후에는 []

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

을 사용하세요
  • 여러 인용문을 인용합니다

문자열에 변수가 없습니다, 작은따옴표

  • 문자열에 변수가 있습니다, 큰따옴표

public function tooLangFunction(
      $valueOne   = '',
      $valueTwo   = '',
      $valueThree = '',
      $valueFour  = '',
      $valueFive  = '',
      $valueSix   = '')
{
    //coding...
}
  • 클래스 또는 메소드 또는 함수를 선언하고 설명 및 속성 설명 및 작성자를 추가하세요

$this->nameTest->functionOne()
               ->functionTwo()
               ->functionThree();
  • api 메소드는 테스트 샘플 예제를 제공합니다
    • $a = [
          'aaa' => 'aaa',
          'bbb' => 'bbb'
      ];

    • try...catch를 사용하세요...

$str = 'str';
$arg = "$str";

  • 여러 메소드를 지속적으로 호출합니다( 3개 이상) foreach

/**
 * 类描述
 *
 * 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...
  }

사용

  • 파일 상단에 저작권 표시

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

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

相关推荐:

怎样优化自己的JavaScript代码

PHP 代码的复用简单教程

PHP 代码规范

위 내용은 초보자를 위한 PHP 코딩 표준 및 제안의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.