1。概述
对于只包含php代码的文件,禁止使用“?>”,这不是必须的.不包含它可以阻止尾部的空白字符不经意间注入到输出流.(也要注意“<?”前面的空白字符,问题虽小但是致命的);
重要:包含任意__HALT_COMPILER() 允许的二进制数据将阻止被从他们获得的Zend framework PHP 文件
2。缩进:使用4个空格,而不是tab
3。行最大长度:
目标行长度是80个字符,事实上IE开发者目标保80列存代码;然而更长的行是可以被接受的。php每一行最大长度是120个字符;
4。行结束:使用Unix 文版文件标准使用LF(10,0x0A)结束;
5。编码格式:
代码仅限使用完全格式,标准标签:
<?php
?>
6。字符:
a) 常用单引号包括
$a = 'Example String';
b) 如果包含`符号,建立使用双引号
$sql = "SELECT `id`, `name` from `people` WHERE `name`='Fred' OR `name`='Susan'";
c) 插入变量使用一下格式
$greeting = "Hello $name, welcome back!";
$greeting = "Hello {$name}, welcome back!";
禁止使用$greeting = "Hello ${name}, welcome back!";
7。字符连接:
a) 使用.符号连接,其中.号前后需要空格增加可读性
$company = 'Zend' . 'Technologies';
b) 多行时以.号开头,与=号对齐
$sql = "SELECT `id`, `name` FROM `people` "
. "WHERE `name` = 'Susan' "
. "ORDER BY `name` ASC ";
8.数组格式:
$sampleArray = array(1, 2, 3, 'Zend', 'Studio');
$sampleArray = array(1, 2, 3, 'Zend', 'Studio',
$a, $b, $c,
56.44, $d, 500);
$sampleArray = array('firstKey' => 'firstValue',
'secondKey' => 'secondValue');
9.类:
/**
* Documentation Block Here
*/
class SampleClass
{
// entire content of class
// must be indented four spaces
}
声明变量可见性(public,protected,private),不要使用var(用于反射机制),不能确定时使用public
注意:类名如果是Zend_Controller_Dispatcher_Interface对应的文件名一定是Zend/Controller/Dispatcher/Interface.php,不然将出现找不到类的异常;
严格区分大小写;
在我们自己类定义时使用前缀Kyxz_并将类放到01kj\library\Kyxz\目录相应的文件中
10.文件路径:
文件路径名不能出现_且第一个字母必须大写;
文件名路径名必须与类名一致,存在严格的对应关系;
Zend/Controller/Front.php <----> Zend/Controller/Front.php
11.方法:注意格式,空格,换行,对齐
方法名使用第一个字母小写格式,如getElementById,最好是动名词格式,具有一定含义,指明其功能用途;对属性访问要严格指明get\set操作;
抛出异常时必须添加@throws exceptionclass [description]
12.属性:如果是protected,private一定要以_开始;如protected $_conn;
常量属性必须全部大写
13.流程控制语句
a) if/elseif/else
if ($a != 2) {
$a = 2;
}
if ($a != 2) {
$a = 2;
} else {
$a = 7;
}
if ($a != 2) {
$a = 2;
} elseif ($a == 3) {
$a = 4;
} else {
$a = 7;
}
b)switch:
switch ($numPeople) {
case 1:
break;
case 2:
break;
default:
break;
}
不能缺少default,即使没有用
14) 数据库:如果在数据字段名中使用“_”,将会被去掉,“_”后面的字母将会被改为大写
要求所有数据表名,字段名使用小写字母,可以添加“_”,但是数据取出后将会被转换为驼峰式
如:字段user_name将会被转换为userName
建议:为了简单些,都使用全小写字母,不要出现“_”
15) images,css:必须使用相对于网站的绝对路径,以"/"开头
命名规则:
1) 下划线式: 常用于linux编程,标识符各字母之间使用“_”格开
2) 驼峰式: 常用于window编程,标识符各首字母大写,看起来相驼峰一样;类名首字母大写;方法,属性首字母小写;变量常使用i,s,...开头表示整数,字符串等变量类型
3) 比较:get_element_by_id <------->getElementById
16) 字符串操作使用mb_str...函数(见帮助文档)
17) 包含文件是使用require_once不要借助于__autoload()函数,效率问题