新手PHP 编码规范及建议
想要当一名出色的程序员,一手好的代码规范是很重要的,那么如何才能写出一手好代码呢?本文我们就给大家一些PHP 编码规范及建议。
编码规范
-
PHP代码文件必须以
<?php //开头 // 不结尾
PHP代码文件必须以不带BOM的UTF-8编码。
例sublime, setting增加,"show_encoding" : true
每行的字符数不超过 80 个字符
例,sublime "word_wrap": "true", "wrap_width": 80,
tap键4个空格
例,sublime "tab_size": 4,
PHP代码中应该只定义类(trait)/函数/常量/其他会产生副作用的操作(如:生成文件输出以及修改 .ini 配置文件等),只能选其一。
例, a.php class A { } b.php function demo() { } c.php define('A', value); d.php ini_set('some_vars', value);
类/trait/Interface的命名必须遵循 StudlyCaps 大写开头的驼峰命名规范。
class StudlyCaps { } trait StudlyCaps { } Interface StudlyCaps { }
类中的常量所有字母都必须大写,单词间用下划线分隔。
define('FOO_BAR', 'something more'); const FOO_BAR = value;
方法(类/trait中)名称必须符合 camelCase 式的小写开头驼峰命名规范。
class StudlyCaps { public function studlyCaps() { // coding... } }
函数名称必须符合 snake_case 式的下划线式命名规范。
function snake_case() { // coding... }
私有的(private)方法(类/trait中)名称必须符合 _camelCase 式的前置下划线小写开头驼峰命名规范。
class StudlyCaps { private function _studlyCaps() { // coding... } }
方法名称 第一个单词 为动词。
class StudlyCaps { public function doSomething() { // coding... } }
变量 必须符合 camelCase 式的小写开头驼峰命名规范。
class StudlyCaps { public function doSomething() { $someVariable = 'demo'; // coding... } }
方法/函数 多参数时,之间要有1个空格
class StudlyCaps { public function doSomething($variableOne, $variableTwo) { // coding... } }
运算符/表达式 要有一个空格
$a = $b + $c; $a = $b . $c;
每个 namespace 命名空间声明语句块 和 use 声明语句块后面,必须 插入一个空白行。
namespace Standard; // 空一行 use Test\TestClass;//use引入类 // 空一行
类的开始花括号 “{ “必须 写在函数声明后自成一行,结束花括号”}”也必须写在函数主体后自成一行。
class StudlyCaps { }
方法/函数的开始花括号 { 必须 写在函数声明后自成一行,结束花括号 }也 必须 写在函数主体后自成一行。
class StudlyCaps { public function studlyCaps() { // coding... } } function snake_case() { // coding... }
类的属性和方法 必须 添加访问修饰符(private、protected 以及 public),abstract 以及 final 必须 声明在访问修饰符之前,而 static 必须 声明在访问修饰符之后。
abstract class StudlyCaps { abstract public function studlyCaps(); final public static function studlyCapsOne() { } }
控制结构的关键字后 必须 要有一个空格符,而调用方法或函数时则 一定不可 有。
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... } $demo = new Demo() $demo->doSomething(); do_something();</p> <p> </p> <ul class=" list-paddingleft-2"><li><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... }
控制结构的开始左括号后和结束右括号前,都一定不可有空格符。
if ($valueOne === $valueTwo) {// 控制结构(右边和)左边不加空格 // code... }
编码建议
sql过长
// 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;
if等控制结构条件过长
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();
数组php5.4以后,使用[]
$a = [ 'aaa' => 'aaa', 'bbb' => 'bbb' ];
单引号多引号
字符串中无变量,单引号
字符串中有变量,双引号
$str = 'str'; $arg = "$str";
声明类或者方法或函数添加描述&属性描述&作者
/** * 类描述 * * 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... }
api方法提供测试样例example
/** * 成员方法名称. * * 成员方法描述 * * @param string $value 形参名称/描述 * * @example domain/api/controller/action?argu1=111&argu2=222 */ public function testFunction($value = '') { // code... }
使用try…catch…
try { // coding... } catch (\Exception $e) { // coding... }
连续调用多个方法(大于3个)使用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(); } } ... }
文件顶部进行版权声明
// +---------------------------------------------------------------------- // | Company Name xx服务 // +---------------------------------------------------------------------- // | Copyright (c) 2017 http://domain All rights reserved. // +---------------------------------------------------------------------- // | Author: name <email> // +----------------------------------------------------------------------
以上内容就给新手程序员的一些编写代码的规范及建议,希望能帮助到大家。
相关推荐:
Atas ialah kandungan terperinci 新手PHP 编码规范及建议. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas





PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Jika anda seorang pembangun PHP yang berpengalaman, anda mungkin merasakan bahawa anda telah berada di sana dan telah melakukannya. Anda telah membangunkan sejumlah besar aplikasi, menyahpenyahpepijat berjuta-juta baris kod dan mengubah suai sekumpulan skrip untuk mencapai op

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

Apakah kaedah sihir PHP? Kaedah sihir PHP termasuk: 1. \ _ \ _ Membina, digunakan untuk memulakan objek; 2. \ _ \ _ Destruct, digunakan untuk membersihkan sumber; 3. \ _ \ _ Call, mengendalikan panggilan kaedah yang tidak wujud; 4. \ _ \ _ Mendapatkan, melaksanakan akses atribut dinamik; 5. \ _ \ _ Set, melaksanakan tetapan atribut dinamik. Kaedah ini secara automatik dipanggil dalam situasi tertentu, meningkatkan fleksibiliti dan kecekapan kod.
