PHP規範PSR2(編碼指南)介紹(三)
阿新 • • 發佈:2018-11-01
6 閉包
閉包必須在function關鍵字後面用空格宣告,並在use關鍵字前後用空格宣告。
開口支撐必須在同一條線上,並且閉合支撐必須在身體後面的下一行。
在引數列表或變數列表的左括號之後不能有空格,並且在引數列表或變數列表的右括號之前不能有空格。
在引數列表和變數列表中,每個逗號前不能有空格,每個逗號後必須有一個空格。
具有預設值的閉包引數必須位於引數列表的末尾。
閉包宣告如下所示。請注意括號,逗號,空格和大括號的位置:
<?php $closureWithArgs = function ($arg1, $arg2) { // body }; $closureWithArgsAndVars = function ($arg1, $arg2) use ($var1, $var2) { // body };
引數列表和變數列表可以分為多行,每行後續行縮排一次。這樣做時,列表中的第一項必須在下一行,並且每行必須只有一個引數或變數。
當結束列表(無論是引數還是變數)被分割成多行時,右括號和左括號必須放在一起,並且它們之間有一個空格。
以下是包含和不包含引數列表的閉包的示例,以及跨多行分割的變數列表。
<?php $longArgs_noVars = function ( $longArgument, $longerArgument, $muchLongerArgument ) { // body }; $noArgs_longVars = function () use ( $longVar1, $longerVar2, $muchLongerVar3 ) { // body }; $longArgs_longVars = function ( $longArgument, $longerArgument, $muchLongerArgument ) use ( $longVar1, $longerVar2, $muchLongerVar3 ) { // body }; $longArgs_shortVars = function ( $longArgument, $longerArgument, $muchLongerArgument ) use ($var1) { // body }; $shortArgs_longVars = function ($arg) use ( $longVar1, $longerVar2, $muchLongerVar3 ) { // body };
請注意,當函式或方法呼叫中的閉包直接用作引數時,格式設定規則也適用。
<?php
$foo->bar(
$arg1,
function ($arg2) use ($var1) {
// body
},
$arg3
);
7 結論
本指南有意省略了許多風格和實踐元素。這些包括但不限於:
- 全域性變數和全域性常量
- 宣告函式
- 宣告操作符和賦值
- 行間對齊
- 註釋和文件塊
- 類名字首和字尾
- 最佳實踐
未來的建議可能會修訂和擴充套件本指南,以解決風格和實踐中的那些或其他元素。