一、文件格式
- 对于只含有 php 代码的文件,我们将在文件结尾处忽略掉 “?>” 。这是为了防止多余的空格或者其它字符影响到代码。
例如:
- 当一个字符串是纯文本组成的时候(即不含有变量),则必须总是以单引号(’)作为定界符。例如:
$a = ‘Example String’; - 变量替换中的变量只允许用 $+变量名 的形式。例如:
$greeting = “Hello $name, welcome back!”; // 允许
KaTeX parse error: Expected '}', got 'EOF' at end of input: …ting = "Hello {name}, welcome back!"; // 允许
$greeting = “Hello ${name}, welcome back!”; // 不允许
当用点号 “.” 连接各字符串的时候,字符串与点号间必须用一个空格隔开,且允许把它分割成多行以增强可读性。在这种情况下,点号 “.” 必须与等于号 “=” 对齐。例如:
s q l = " S E L E C T ‘ i d ‘ , ‘ n a m e ‘ " . " F R O M ‘ p e o p l e ‘ " . " W H E R E ‘ n a m e ‘ = ′ S u s a n ′ " . " O R D E R B Y ‘ n a m e ‘ A S C " ; 当 用 a r r a y 类 型 符 号 来 构 造 数 组 的 时 候 , 必 须 在 每 个 逗 号 之 后 加 上 一 个 空 格 来 增 强 可 读 性 。 例 如 : sql = "SELECT `id`, `name` " . " FROM `people` " . "WHERE `name` = 'Susan' " . "ORDER BY `name` ASC "; 当用 array 类型符号来构造数组的时候,必须在每个逗号之后加上一个空格来增强可读性。例如: sql="SELECT‘id‘,‘name‘"."FROM‘people‘"."WHERE‘name‘=′Susan′"."ORDERBY‘name‘ASC";当用array类型符号来构造数组的时候,必须在每个逗号之后加上一个空格来增强可读性。例如:sampleArray = array(1, 2, 3, ‘Think’, ‘SNS’); - 当使用 array 类型符声明关联数组的时候,我们鼓励把它分成多个行,只是我们必须同时保证每行的键与值的对齐,以保持美观。例如:www.cdxsxbx.com
$sampleArray = array(
‘firstKey’ => ‘firstValue’,
‘secondKey’ => ‘secondValue’
); - 大括号的开始必须在类名的下一行顶格。例如:
class Think
{
// …
} - 类中的所有代码都必须用四个空格来进行缩进。
- 每个 php 文件只允许声明一个类。在类文件里面写其它代码是允许的,但并不鼓励这样做。假如真要附加代码的话,必须用空行来分隔。
- 任何类变量的声明都必须放在类顶部,先于任何函数的声明。
- 不允许用 var 符号来声明变量,类成员变量必须以 private,protected 和 public 来声明。其次,把类成员声明为 public 而直接引用虽然是允许的,但通常更好的方法是使用 get 和 set 方法来访问类成员。
- 方法必须总是用 private,protected 或者 public 来声明其作用域。
- 静态 static 方法应该声明其作用域,且不应该再被声明为 private 私有,而应该为 protected 或者public ,如果只是不想被子类继承,则应该用 final 声明它们。
- 函数或方法的初始大括号应该在函数声明的下一行顶格。例如:
function get_client_ip()
{
// …
} - 在函数或方法名与参数括号之间不允许出现多余的空格。例如:
function get_client_ip()
{
// …
} - 引用只允许定义在函数参数中,实时传递引用是禁止的。例如:
// 引用定义在函数参数-允许的
function defineRefInMethod(&$a)
{
KaTeX parse error: Expected 'EOF', got '}' at position 10: a = 'a'; }̲ defineRefInMe…b);
echo b ; / / ′ a ′ / / 实 时 传 递 引 用 − 禁 止 的 f u n c t i o n c a l l T i m e P a s s R e f ( b; // 'a' // 实时传递引用-禁止的 function callTimePassRef( b;//′a′//实时传递引用−禁止的functioncallTimePassRef(a)
{
KaTeX parse error: Expected 'EOF', got '}' at position 10: a = 'a'; }̲ callTimePassRe…c);
echo $c; // ‘a’ - 函数或方法返回值不可以用括号包住,不然会降低可读性,而且假如以后函数修改为返回引用的话,这将会抛出一个异常。
- 鼓励尽量使用类型提示,特别是在模块设计中。例如:
class Foo
{
public function foo(SomeInterface $object)
{
}
public function bar(array $options)
{
}
}
17. 函数和方法参数必须用逗号+空格来分隔。
18. 对于参数为数组的函数,参数中的数组应该分成多行以增强可读性。例如:
threeArguments(array(1, 2, 3), 2, 3);
threeArguments(array(1, 2, 3, ‘Think’,
‘SNS’, $a, $b, $c,
56.44,
d
,
500
)
,
2
,
3
)
;
19.
基
于
"
i
f
"
,
"
e
l
s
e
"
和
"
e
l
s
e
i
f
"
的
条
件
控
制
里
,
我
们
必
须
用
空
格
间
隔
开
语
句
和
括
号
,
大
括
号
的
开
始
"
"
必
须
与
条
件
控
制
语
句
位
于
同
一
行
,
结
束
"
"
必
须
总
是
独
占
一
行
且
顶
格
,
控
制
流
程
内
容
必
须
用
四
个
空
格
进
行
缩
进
,
且
不
使
用
"
e
l
s
e
i
f
"
。
i
f
(
d, 500), 2, 3); 19. 基于"if", "else"和"else if"的条件控制里,我们必须用空格间隔开语句和括号,大括号的开始 "{" 必须与条件控制语句位于同一行,结束 "}" 必须总是独占一行且顶格,控制流程内容必须用四个空格进行缩进,且不使用"elseif"。 if (
d,500),2,3);19.基于"if","else"和"elseif"的条件控制里,我们必须用空格间隔开语句和括号,大括号的开始""必须与条件控制语句位于同一行,结束""必须总是独占一行且顶格,控制流程内容必须用四个空格进行缩进,且不使用"elseif"。if(condition) {
// …
} else if (
c
o
n
d
i
t
i
o
n
)
/
/
.
.
.
e
l
s
e
/
/
.
.
.
20.
在
条
件
控
制
语
句
的
条
件
括
号
内
,
必
须
用
空
格
将
操
作
符
与
其
它
元
素
隔
开
。
如
果
遇
到
很
长
的
逻
辑
判
断
,
则
鼓
励
用
内
嵌
括
号
来
分
割
各
个
逻
辑
。
例
如
:
i
f
(
(
_condition) { // ... } else { // ... } 20. 在条件控制语句的条件括号内,必须用空格将操作符与其它元素隔开。如果遇到很长的逻辑判断,则鼓励用内嵌括号来分割各个逻辑。例如: if ((
condition)//...else//...20.在条件控制语句的条件括号内,必须用空格将操作符与其它元素隔开。如果遇到很长的逻辑判断,则鼓励用内嵌括号来分割各个逻辑。例如:if((a != 2) and ($b == 1)) {
$a = KaTeX parse error: Expected 'EOF', got '}' at position 4: b; }̲ 21. "switch" 条…num) {
// …
}
22. “switch” 语句的内容必须以四个空格缩进,“case” 条件控制的内容必须再加四个空格进行缩进。例如:
switch (
i
n
d
e
n
t
e
d
S
p
a
c
e
s
)
c
a
s
e
2
:
e
c
h
o
"
错
误
"
;
b
r
e
a
k
;
c
a
s
e
4
:
e
c
h
o
"
正
确
"
;
b
r
e
a
k
;
d
e
f
a
u
l
t
:
b
r
e
a
k
;
23.
在
"
s
w
i
t
c
h
"
语
句
中
应
该
总
是
包
括
"
d
e
f
a
u
l
t
"
控
制
。
24.
有
时
候
我
们
需
要
在
"
c
a
s
e
"
语
境
中
省
略
掉
"
b
r
e
a
k
"
或
"
r
e
t
u
r
n
"
,
这
个
时
候
我
们
必
须
为
这
些
"
c
a
s
e
"
语
句
加
上
"
/
/
此
处
无
b
r
e
a
k
"
注
释
。
例
如
:
s
w
i
t
c
h
(
indentedSpaces) { case 2: echo "错误"; break; case 4: echo "正确"; break; default: break; } 23. 在 "switch" 语句中应该总是包括 "default" 控制。 24. 有时候我们需要在 "case" 语境中省略掉 "break" 或 "return" ,这个时候我们必须为这些 "case" 语句加上 "// 此处无break" 注释。例如: switch (
indentedSpaces)case2:echo"错误";break;case4:echo"正确";break;default:break;23.在"switch"语句中应该总是包括"default"控制。24.有时候我们需要在"case"语境中省略掉"break"或"return",这个时候我们必须为这些"case"语句加上"//此处无break"注释。例如:switch(numPeople) {
case 1: // 此处无break
case 2:
break;
default:
break;
}
分类: PHP