PHP语言规范文档

PHP语言规范文档
PHP语言规范文档

PHP语言编写规范

第1章命名规范

1.1变量

1.1.1全局变量

全局变量使用$g_开头,如$g_data_list。

1.1.2 一般变量

一般的变量使用小写字母命名,单词之间使用下划线分隔。

变量名字应该使用名词或者形容词+名词的方式。如$value,$new_value。

1.1.3 临时变量

不要将在循环中频繁使用的临时变量如$i,$j等用于其它用途。

1.2 函数

函数采用小写字母命名,单词之间使用下划线分隔。

函数的命名建议使用动词+名词的方式,如get_user_img。

完成一组功能的函数放到一个文件中,存放函数的文件采用function_name.func.php命名。

1.3 类

类使用英文的大小写来分隔单词,包括首个单词,所有单词的首字母大写,如PageManager;

在类中,方法放到属性定义前边、公用方法放到专用方法前边;

一般情况下,一个类对应到一个文件;

当一些类关系紧密时,可以存放在一个文件中;

存放类的文件采用ClassName.class.php方式命名。

1.4 方法

方法使用英文的大小写来分隔单词,除首个单词外,其他单词的首字母大写,如getCurrentPage();不要采用不常用的缩写,如where2go();

使用常用的缩写时,只大写首字母,如getHtml()。

第2章版式规则

2.1 语义分隔

各个函数、方法之间应该采用空行间隔;

同一个函数中联系紧密的语句之间可以不换行,其他情况需要换行。

2.2 空格规则

2.2.1 逻辑运算符前后必须加空格

正确 $a == $b;

错误 $a==$b;

$a ==$b;

备注 -

正确 $a++; $a–;

错误 $a ++; $a –;

备注加一减一运算符不能加空格。

2.2.2 多个参数分隔时必须加空格

正确 $g_pro , $g_user , g_show;

get_db_info($host, $user, $passwd);

错误 $g_pro,$g_user,$g_show;

get_db_info($host,$user,$passwd);

备注 -

2.2.3 语法关键字后必须加空格

例如:If, for , while, switch …..

正确 for ($i = 0; $i < 10; $i++)

错误 for($i = 0; $i < 10; $i++ )

备注 -

2.3 字符串和变量连接规则

字符串与变量连接使用’.'号时,必须在’.'前后加空格,使用”号时,必须在变量前后加”{}”。

正确$my_name = ’file_’ . $var1;

$my_name = ”file_{$var1}”;

错误$my_name = ”file_’.$var1;

$my_name = ”file_$var1″;

备注 -

2.4 圆括号规则

函数名后括号不需要加空格、语法关键字后的括号必须加空格。

正确 for ($i = 0; $i < 10; $i++)

strlen($my_name);

错误 for($i = 0; $i < 10; $i++ )

strlen ($my_name);

备注 -

2.5 花括号规则

花括号必须为上下对应。

正确

if ($a)

{

$b = $a;

}

错误 if ($a){

$b = $a;

}

备注 -

2.6 数组定义规则

数组定义和使用时中key值前后必须加单引号。PHP 代码:

下载: php_array.php

//正确

array(

'name' => 'https://www.360docs.net/doc/6d16835560.html,',

'gender' => 'php'

);

//错误

array(

name => 'https://www.360docs.net/doc/6d16835560.html,',

gender => 'php'

);

?>

2.7 SQL规则

在PHP中嵌入的SQL语句关键字全部采用大写;

表名和字段名要用反引号(`)引起来以防止因为字段名中包含空格而出现错误;

数据值两边用单引号”包括,并且应确保数据值中的单引号已经转义以防止SQL注入。正确$sql = ”SELECT `user`.`name` FROM `user` WHERE `id` = ’$id’ LIMIT 1″;

错误$sql = ”select https://www.360docs.net/doc/6d16835560.html,er from name where id = $id ”;

备注 -

第3章注释规则

3.1 一般规则

不写不必要的注释;只有当代码不能很好地说明逻辑时,才用注释补充;

把注释看成程序的一部分,在编写/维护代码时同时编写/维护注释;

注释完全采用PHPDocumentor的规范,以方便用其生成API级文档。

3.2 详细规则

请参见PHPDocumentor手册。下边给出各个部分的注释示范。

3.2.1 版权信息

注释名称版权信息

注释示范 //

// +—————————————————-+

// | phpDocumentor |

// +—————————————————-+

// | Copyright (c) 2000-2003 Joshua Eichorn |

// | Email jeichorn@https://www.360docs.net/doc/6d16835560.html, |

// | Web https://www.360docs.net/doc/6d16835560.html, |

// +—————————————————-+

// | This source file is subject to PHP License |

// +—————————————————-+

//

备注使用//来标示版权信息,以免和PHPDocumentor的page-level DocBlock发生冲突3.2.2文件头注释示例

注释名称文件头注释

注释示范

下载: php_doc.php

* All abstract representations of inline tags are in this file * @package phpDocumentor

* @subpackage InlineTags

* @since separate file since version 1.2

* @version $Id $

*/

?>

备注

1 文件头注释需要指明所属的包和子包

2 在@version中加上$ID,以方便使用CVS管理文件

3.2.3 类注释示例

注释名称类注释

注释示范

下载: php_class.php

/**

* Use this element to represent an {@}inline tag} like {@}link}

* @see parserStringWithInlineTags

* @package phpDocumentor

* @subpackage InlineTags

* @author Greg Beaver * @since 1.0rc1

* @version $Revision: 1.21.2.6 $

* @tutorial inlinetags.pkg

*/

?>

备注 -

3.2.4 类属性注释示例

注释名称类属性注释

注释示范

下载: php.php

/** var $type = 'inlinetag';

* Element type

*

* Type is used by many functions to skip the hassle of *

*

* if get_class($blah) == 'parserBlah'

*

* always "inlinetag"

* @var string

*/

?>

备注 -

3.2.5 函数/类方法注释示例

注释名称函数/类方法注释

注释示范

下载: php.php

/** function getString() '';

* @return string always ''

* calculate the short description of a DocBlock * @see parserStringWithInlineTags::getString()

* @see parserStringWithInlineTags::trimmedStrlen()

*/

{

return

}

?>

此条目发表在理论分类目录。将固定链接加入收藏夹。

用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。

1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。

2、$row[’id’] 的速度是$row[id]的7倍。

3、echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo $str1,$str2。

4、在执行for循环之前确定最大循环数,不要每循环一次都计算最大值,最好运用foreach代替。

5、注销那些不用的变量尤其是大数组,以便释放内存。

6、尽量避免使用__get,__set,__autoload。

7、require_once()代价昂贵。

8、include文件时尽量使用绝对路径,因为它避免了PHP去include_path里查找文件的速度,解析操作系统路径所需的时间会更少。

9、如果你想知道脚本开始执行(译注:即服务器端收到客户端请求)的时刻,使用

$_SERVER[‘REQUEST_TIME’]要好于time()。

10、函数代替正则表达式完成相同功能。

11、str_replace函数比preg_replace函数快,但strtr函数的效率是str_replace函数的四倍。

12、如果一个字符串替换函数,可接受数组或字符作为参数,并且参数长度不太长,那么可以考虑额外写一段替换代码,使得每次传递参数是一个字符,而不是只写一行代码接受数组作为查询和替换的参数。

13、使用选择分支语句(译注:即switch case)好于使用多个if,else if语句。

14、用@屏蔽错误消息的做法非常低效,极其低效。

15、打开apache的mod_deflate模块,可以提高网页的浏览速度。

16、数据库连接当使用完毕时应关掉,不要用长连接。

17、错误消息代价昂贵。

18、在方法中递增局部变量,速度是最快的。几乎与在函数中调用局部变量的速度相当。

19、递增一个全局变量要比递增一个局部变量慢2倍。

20、递增一个对象属性(如:$this->prop++)要比递增一个局部变量慢3倍。

21、递增一个未预定义的局部变量要比递增一个预定义的局部变量慢9至10倍。

22、仅定义一个局部变量而没在函数中调用它,同样会减慢速度(其程度相当于递增一个局部变量)。PHP大概会检查看是否存在全局变量。

23、方法调用看来与类中定义的方法的数量无关,因为我(在测试方法之前和之后都)添加了10个方法,但性能上没有变化。

24、派生类中的方法运行起来要快于在基类中定义的同样的方法。

25、调用带有一个参数的空函数,其花费的时间相当于执行7至8次的局部变量递增操作。类似的方法调用所花费的时间接近于15次的局部变量递增操作。

26、Apache解析一个PHP脚本的时间要比解析一个静态HTML页面慢2至10倍。尽量多用静态HTML页面,少用脚本。

27、除非脚本可以缓存,否则每次调用时都会重新编译一次。引入一套PHP缓存机制通常可以提升25%至100%的性能,以免除编译开销。

28、尽量做缓存,可使用memcached。memcached是一款高性能的内存对象缓存系统,可用来加速动态Web应用程序,减轻数据库负载。对运算码 (OP code)的缓存很有用,使得脚本不必为每个请求做重新编译。

29、当操作字符串并需要检验其长度是否满足某种要求时,你想当然地会使用strlen()函数。此函数执行起来相当快,因为它不做任何计算,只返回在zval 结构(C的内置数据结构,用于存储PHP变量)中存储的已知字符串长度。但是,由于strlen()是函数,多多少少会有些慢,因为函数调用会经过诸多步骤,如字母小写化(译注:指函数名小写化,PHP不区分函数名大小写)、哈希查找,会跟随被调用的函数一起执行。在某些情况下,你可以使用isset() 技巧加速执行你的代码。

(举例如下)

if (strlen($foo) < 5) { echo “Foo is too short”$$ }

(与下面的技巧做比较)

if (!isset($foo{5})) { echo “Foo is too short”$$ }

调用isset()恰巧比strlen()快,因为与后者不同的是,isset()作为一种语言结构,意味着它的执行不需要函数查找和字母小写化。也就是说,实际上在检验字符串长度的顶层代码中你没有花太多开销。

34、当执行变量$i的递增或递减时,$i++会比++$i慢一些。这种差异是PHP特有的,并不适用于其他语言,所以请不要修改你的C或Java代码并指望它们能立即变快,没用的。++$i更快是因为它只需要3条指令(opcodes),$i++则需要4条指令。后置递增实际上会产生一个临时变量,这个临时变量随后被递增。而前置递增直接在原值上递增。这是最优化处理的一种,正如Zend的PHP优化器所作的那样。牢记这个优化处理不失为一个好主意,因为并不是所有的指令优化器都会做同样的优化处理,并且存在大量没有装配指令优化器的互联网服务提供商(ISPs)和服务器。

35、并不是事必面向对象(OOP),面向对象往往开销很大,每个方法和对象调用都会消耗很多内存。

36、并非要用类实现所有的数据结构,数组也很有用。

37、不要把方法细分得过多,仔细想想你真正打算重用的是哪些代码?

38、当你需要时,你总能把代码分解成方法。

39、尽量采用大量的PHP内置函数。

40、如果在代码中存在大量耗时的函数,你可以考虑用C扩展的方式实现它们。

41、评估检验(profile)你的代码。检验器会告诉你,代码的哪些部分消耗了多少时间。Xdebug调试器包含了检验程序,评估检验总体上可以显示出代码的瓶颈。

42、mod_zip可作为Apache模块,用来即时压缩你的数据,并可让数据传输量降低80%。

43、在可以用file_get_contents替代file、fopen、feof、fgets等系列方法的情况下,尽量用

file_get_contents,因为他的效率高得多!但是要注意file_get_contents在打开一个URL文件时候的PHP 版本问题;

44、尽量的少进行文件操作,虽然PHP的文件操作效率也不低的;

45、优化Select SQL语句,在可能的情况下尽量少的进行Insert、Update操作(在update上,我被恶批过);

46、尽可能的使用PHP内部函数(但是我却为了找个PHP里面不存在的函数,浪费了本可以写出一个自定义函数的时间,经验问题啊!);

软件开发文档规范

附2: 软件文档编写向导 文档分类 项目包括如下几类文档: 项目管理文档。包括:《软件项目计划》、《项目进度报告》、《项目开发总结报告》 软件开发文档。包括:《需求规格说明》、《概要设计说明》、《详细设计说明》、《测试计划》、《软件测试分析报告》。 产品文档。包括:《用户操作手册》《演示文件》。 软件项目计划 (Software Project Plan) 一?引言 1?编写目的(阐明编写软件计划的目的,指出读者对象。) 2?项目背景(可包括:(1 )项目委托单位、开发单位和主管部门;(2)该软件系统与 其他系统的关系。) 3?定义(列出本文档中用到的专门术语的定义和缩略词的原文。) 4?参考资料(可包括:文档所引用的资料、规范等;列出资料的作者、标题、编号、发 表日期、出版单位或资料来源。) 二?项目概述 1.工作内容(简要说明项目的各项主要工作,介绍所开发软件的功能性能等?若不编写可行性研究报告,则应在本节给出较详细的介绍。) 2.条件与限制(阐明为完成项目应具备的条件开发单位已具备的条件以及尚需创造的 条件?必要时还应说明用户及分合同承包者承担的工作完成期限及其它条件与限制。) 3.产品 (1)程序(列出应交付的程序名称使用的语言及存储形式。) (2)文档(列出应交付的文档。) (3 )运行环境(应包括硬件环境软件环境。) 4?服务(阐明开发单位可向用户提供的服务?如人员培训安装保修维护和其他运行支持。 5.验收标准

三.实施计划 1.任务分解(任务的划分及各项任务的负责人。) 2?进度(按阶段完成的项目,用图表说明开始时间完成时间。) 3?预算 4?关键问题(说明可能影响项目的关键问题,如设备条件技术难点或其他风险因素,并说明对策。) 四.人员组织及分工 五.交付期限 六.专题计划要点(如测试计划等。) 项目开发进度报告 一.报告时间及所处的开发阶段 二.给出进度 1.本周的主要活动 2.实际进展与计划比较 三.所用工时(按不同层次人员分别计时。) 四.所有机时 五.工作遇到的问题及采取的对策 六.本周完成的成果 七.下周的工作计划 八.特殊问题 项目开发总结报告 一.引言 1.编写目的(阐明编写总结报告的目的,指明读者对象。) 2.项目背景(说明项目的来源、委托单位、开发单位及主管部门。) 3.定义(列出报告中用到的专门术语定义和缩写词的原意。) 4.参考资料(列出这些资料的作者、标题、编号、发表日期、出版单位或资料来源,可包括: (1 )项目开发计划;(2 )需求规格说明书;(3 )概要设计说明书;(4 )详细设计说明

完整的WordPress函数大全

完整的WordPress函数大全 在修改和制作Wordpress主题时经常为不知道内置函数而苦恼,而wordpress官方的文档看起来又不是那么方便。所搜集并且整理了一下放这,以备后用。 判断页面函数 is_home() : 是否为主页 is_single() : 是否为内容页(P ost) is_page() : 是否为内容页(Page) is_category() : 是否为Category/Archive页 is_tag() : 是否为Tag存档页 is_date() : 是否为指定日期存档页 is_year() : 是否为指定年份存档页 is_month() : 是否为指定月份存档页 is_day() : 是否为指定日存档页 is_time() : 是否为指定时间存档页 is_archive() : 是否为存档页 is_search() : 是否为搜索结果页

is_404() : 是否为“HTTP 404: Not Found”错误页 is_paged() : 主页/Category/Archive页是否以多页显示 Header部分常用到的PHP函数 : 博客名称(Title) : CSS文件路径 : PingBack Url : 模板文件路径 : WordPress版本 : Atom Url : RSS 2.o Url : 博客Url : 博客网页Html类型 : 博客网页编码 : 博客描述

六种流行的语言---C、C++、python、Java、php、C#比较

六种流行的语言---C、C++、python、Java、php、C#比较 语言大餐 回归正题,本文是六种语言连接mysql数据库的代码展示,在LZ尝试的过程中,无论是语言环境搭建、mysql依赖库的导入还是代码的风格,各种语言都各有千秋。接下来,我们就让这些语言一一登场吧。 Java(最具噱头的语言) Java给新人的印象应该是入门简单、代码优雅、活跃度高、跨平台、开源大家庭等等,实在是当之无愧的明星语言,而且是偶像派的。不过可惜的是,偶像派明星很容易被干掉。Java语言是LZ赖以生存的语言,因此LZ不希望做个偶像派,只能奋起直追,争取做实力派的Javaer。 说起这次Java连接mysql的编写,实在没什么好说的,毕竟本身就是做这个的,所以这一路非常顺利,算是最无感的一个。下面是LZ写的代码。 packagecn.zxl.jmysql; importjava.sql.Connection; importjava.sql.DriverManager; importjava.sql.ResultSet;

importjava.sql.Statement; public class JMysql { private static final String DRIVER = "com.mysql.jdbc.Driver"; private static final String URL = "jdbc:mysql://localhost/test"; private static final String USERNAME = "root"; private static final String PASSWORD = "123456"; private static final String SQL = "select * from test"; public static void main( String[] args ) { Connection connection = null; Statement statement = null; ResultSetresultSet = null; try { Class.forName(DRIVER); connection = DriverManager.getConnection(URL, USERNAME, PASSWORD); statement = connection.createStatement(); resultSet = statement.executeQuery(SQL); while (resultSet.next()) { System.out.println("|" + resultSet.getString("id") + "|" + resultSet.getString("name") + "|");

PHP网站开发语言技术特点及优势

1、跨平台特性:PHP语言可以运行于Linux、FreeBSD、OpenBSD、Solaris Unix、AIX、Darwin、Windows 等多种操作系统,通常说的LAMP指的就是Linux、Apache、MySQL、PHP/Perl/Python。 2、数据库支持:PHP支持多种主流与非主流的数据库,如:、Adabas D、DBA、dBase、dbm、filePro、Informix、InterBase、mSQL、MySQL、Microsoft SQL Server、Solid、Sybase、ODBC、oracle、oracle 8、PostgreSQL 等。 3、安全性:加密支持,PHP4实现了完整的加密, 这些加密功能是一个完整的mycrypt库,并且PHP 支持哈希函数。Blowfish,TripleDES,MD5,并且SHA1 也是可使用的一些加密算法。使用PHP语言运行Linux、FreeBSD、OpenBSD、Solaris Unix操作系统,不需安装任何杀毒软件及补丁,安全可靠. 4、扩展性:扩充了API 模块:PHP 为扩展的API 模块的提供了扩展PHP接口模块, 济南网站建设认为它比旧的API 版本显著地快。PHP 模块已有的及最常用的接口多数被转换到使用这个扩展的接口; 另外,PHP属于开源软件,其源代码完全公开,任何程序员为PHP扩展附加功能非常容易使PHP有很好的发展空间和扩展性. 5、执行速度快:PHP是一种强大的CGI脚本语言,语法混合了C、Java、Perl和PHP式的新语法,执行网页比CGI、Perl和ASP更快,这是它的第一个突出的特点;内存方面,PHP 能更有效的使用内存, 导致较少的内存占用消耗,这主要归功于引用计数技术的实现。 6、可移植性:PHP 写出来的Web 后端CGI 程序,可以很轻易的移植到不同的操作系统上。例如,先以Linux 架的网站,在系统负荷过高时,可以快速地将整个系统移到SUN 工作站上,不用重新编译CGI 程序。面对快速发展的Internet,这是长期规划的最好选择。 7、功能全面性。PHP包括图形处理、编码与解码、压缩文件处理、XML解析、支持HTTP的身份认证、Cookie、POP3、SNMP等。可以利用PHP连接包括Oracle,MS-Access,Mysql在内的大部分数据库。从对象式的设计、结构化的特性、数据库的处理、网络接口应用、安全编码机制等,PHP几乎涵盖了所有网站的一切功能。 8、可伸缩性。传统上网页的交互作用是通过CGI来实现的。CGI程序的伸缩性不很理想,因为它为每一个正在运行的CGI程序开一个独立进程。解决方法就是将经常用来编写CGI程序的语言的解释器编译进web服务器(比如mod_perl,JSP),PHP就可以以这种方式安装。内嵌的PHP可以具有更高的可伸缩性。 9.要发挥php语言的优势,Linux+Apache+MySQL+PHP.被称为“黄金组合”。 10、国内排名前十名的网站中使用PHP的有8家:百度、腾讯网、新浪、搜狐、网易、淘宝、雅虎中国、Tom在线,易趣(ebay)。国内近两年新推出的网站中,有80%使用PHP开发。Alexa中文网站500强中,394家以上的网站应用着PHP技术. PHP不会像因为被合作商限制、更多的免费及共享的特性大大降低使用的成本及扩展性。

软件开发文档标准

可行性研究报告 来源:国家计算机标准和文件模板作者: 可行性研究报告的编写目的是:说明该软件开发项目的实现在技术、经济和社会条件方面的可行性;评述为了合理地达到开发目标而可能选择的各种方案;说明并论证所选定的方案。 可行性研究报告的编写内容要求如下: 1 引言 1.1编写目的 说明编写本可行性研究报告的目的,指出预期的读者。 1.2背景 说明: a.所建议开发的软件系统的名称; b.本项目的任务提出者、开发者、用户及实现该软件的计算中心或计算机网络; C.该软件系统同其他系统或其他机构的基本的相互来往关系。 1.3定义 列出本文件中用到的专门术语的定义和外文首字母组词的原词组。 1.4参考资料 列出用得着的参考资料,如: a.本项目的经核准的计划任务书或合同、上级机关的批文; b.属于本项目的其他已发表的文件; C.本文件中各处引用的文件、资料,包括所需用到的软件开发标准。| 列出这些文件资料的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。 2 可行性研究的前提 说明对所建议的开发项目进行可行性研究的前提,如要求、目标、假定、限制等。 2.1要求 说明对所建议开发的软件的基本要求,如: a.功能; b.性能; C.输出如报告、文件或数据,对每项输出要说明其特征,如用途、产生频度、接口以及分发对象; d.输入说明系统的输入,包括数据的来源、类型、数量、数据的组织以及提供的频度; e.处理流程和数据流程用图表的方式表示出最基本的数据流程和处理流程,并辅之以叙述; f.在安全与保密方面的要求; g.同本系统相连接的其他系统;

h.完成期限。 2.2目标 说明所建议系统的主要开发目标,如: a.人力与设备费用的减少; b.处理速度的提高; C.控制精度或生产能力的提高; d.管理信息服务的改进; e.自动决策系统的改进; f.人员利用率的改进。 2.3条件、假定和限制 说明对这项开发中给出的条件、假定和所受到的限制,如: a.所建议系统的运行寿命的最小值; b.进行系统方案选择比较的时间; c.经费、投资方面的来源和限制; d.法律和政策方面的限制; e.硬件、软件、运行环境和开发环境方面的条件和限制; f.可利用的信息和资源; g.系统投入使用的最晚时间。 2.4进行可行性研究的方法 说明这项可行性研究将是如何进行的,所建议的系统将是如何评价的。摘要说明所使用的基本方法和策略,如调查、加权、确定模型、建立基准点或仿真等。 2.5评价尺度 说明对系统进行评价时所使用的主要尺度,如费用的多少、各项功能的优先次序、开发时间的长短及使用中的难易程度。 3 对现有系统的分析 这里的现有系统是指当前实际使用的系统,这个系统可能是计算机系统,也可能是一个机械系统甚至是一个人工系统。 分析现有系统的目的是为了进一步阐明建议中的开发新系统或修改现有系统的必要性。 3.1处理流程和数据流程 说明现有系统的基本的处理流程和数据流程。此流程可用图表即流程图的形式表示,并加以叙述。 3.2工作负荷 列出现有系统所承担的工作及工作量。 3.3费用开支 列出由于运行现有系统所引起的费用开支,如人力、设备、空间、支持性服务、材料等项开

PHP简答题大题(含答案)

重要知识点: 1、变量赋值方式有哪几种? 1)直接赋值 $str = 123; 2)变量间赋值 $arr = array(); $arr[] = 123; $arr[] = 456; $a; $a = 123; 3)引用赋值 $a = 123; $b = $a; 2、引用和拷贝有什么区别? 拷贝是将原来的变量内容复制下来,拷贝后的变量与原来的变量使用各自的内存,互不干扰。 引用相当于是变量的别名,其实就是用不同的名字访问同一个变量内容。当改变其中一个变量的值时,另一个也跟着发生变化。 3、 php中变量有哪些基本数据类型? php支持8种原始数据类型。 包括: 四种标量类型(布尔型boolean,整型interger,浮点型float/double , 字符串string)两种复合类型(数组array ,对象object) 两种特殊类型(资源resource,NULL) 4、其它类型转换为boolean类型时,哪些被认为是false? 布尔值false,整型值0,浮点型值0.0,空白字符串,字符串'0', 空数组, 空对象,特殊数据类型NULL, 没有设定的变量。 empty()函数在哪些情况下返回true? 布尔值false,整型值0,浮点型值0.0,空白字符串,字符串'0', array()空数组,特殊数据类型NULL, 没有任何属性的对象,没有赋值的变量。 5、常量和变量有哪些区别? 1)常量前没有$符号; 2)常量只能通过define()定义,而不能通过赋值语句定义; 3)常量可以在任何地方定义和访问,而变量定义的反问有固定的规则; 4)常量一旦定义就不能被重新定义或者取消定义,而变量而通过赋值方式重新定义; 5)常量的值只能是标量数据,而变量的数据库类型有8中原始数据类型。 6、函数的优越性有哪些? 提高程序的可维护性 提高软件的可靠性 提高程序的可重用性 提高程序的开发效率

PHP基础语言外文翻译文献

PHP基础语言外文翻译文献 (文档含中英文对照即英文原文和中文翻译) 原文: PHP Language Basics Active Server Pages (PHP) is a proven, well-established technology for building dynamic Web applications, which provides the power and flexibility you need to create anything from a personal, Web based photo gallery to a complete catalogue and shopping cart system for your next eCommerce project。One unique feature of PHP is that it lets you choose

your favourite scripting language, be it JavaScript or PHP ; however, PHP is by far the most popular choice. In this article, I'll bring you up to speed on the basic syntax of the PHP language, including variables, operators, and control structures. This article is the second in a series teaching PHP. Specifically, the goal of this series is to teach you all you need to know to create dynamic Web sites using PHP. This article picks up right where the previous article in the series, Getting Started with PHP, left off. Variables Here is the listing for the first PHP script I helped you create in the previous article: 1 2 3 My First PHP Page 4 5 6 10 11

PRD-产品开发项目文档管理系统要求规范

产品开发项目文档管 理规范 文档编号:COSHIP-CMMI-PRD-PDPDM 密级:机密 版本信息:1.8 批准日期: 编辑软件:Microsoft Word 2003 Microsoft Visio 2003 同洲电子股份有限公司版权所有 内部资料注意保密

*变化状态:C――创建,A——增加,M——修改,D——删除

目录 1 概述 (1) 1.1 目的 (1) 1.2 适用范围 (1) 2 产品开发文档体系 (1) 3 文档质量的度量准则 (3) 4 主要角色和职责 (3) 4.1 文档作者 (3) 4.2 项目经理 (4) 4.3 PPQA (4) 4.4 配置管理工程师 (4) 4.5 评审组 (4) 4.6 部门经理 (4) 5 文档审核流程 (5) 5.1 审核流程 (5) 5.2 归档签名 (6) 5.3 纳入基线 (6) 6 文档保密制度 (7) 7 文档编号 (7) 7.1 文档编号规则 (7) 7.2 阶段代号 (8) 8 文档版本 (9)

1概述 1.1目的 规范公司产品开发项目的文档体系,加强文档的标准化管理。 1.2适用范围 公司内所有产品开发项目。 2产品开发文档体系 在产品开发项目开发过程中,各阶段都有相应的文档输出,文档的编写应先于或同步于开发工作。 产品开发项目过程中的文档体系如表1所示。 表1.产品开发项目文档体系

3文档质量的度量准则 评审文档质量的度量准则有以下六条: 完整性:所承担产品开发任务的项目组,需按照公司文档体系的规定编写相应的文档,以保证在项目结束时其文档是齐全的。 正确性:在项目各个阶段所编写的文档的内容,必须真实的反映阶段的工作且与该阶段的需求相一致。文档与所述的对象保持一致,必要时应进行实时的文档版本升级。 可读性:文档应该表达清晰、逻辑条理分明、表现形式通用。 简明性:在项目各个阶段所编写的各种文档的语言表达应该准确简练。 规范性:文档的规范性是指采用当前最新的模板。其完整性及内容的充实程度应不低于模板的要求。 可追溯性:在项目各个阶段所编写的各种文档应该具有良好的可追溯性。由于各开发阶段编制的文档与各阶段完成的工作有着密切的关系,前后阶段生成的文件,随着开发工作的逐步扩展,具有一定的继承关系。在一个项目各开发阶段之间提供的文件必定存在着可追溯的关系。 4主要角色和职责 4.1文档作者 文档作者包括公司内的项目组成员以及外协人员。文档作者在文档方面的主要工作为:1)在项目开发过程的各个阶段中,按照规定及时地完成项目文档的编写工作,文档作者有责任保证文档编写与开发同步。 2)文档作者不仅要审核文档字面上有无错漏,还要审核所陈述的技术内容是否精确,及表达方式上是否清晰易懂。文档作者对文档的正确性、可读性和规范性全面负责。 3)文档作者保证所编写的文档与所描述的对象保持很好的一致性,必要时及时更新文档,便于以后维护工作和后续开发工作的开展。

常用函数 类参考

全局函数1、common.func.php 公用函数 获得当前的脚本网址 function GetCurUrl() 返回格林威治标准时间 function MyDate($format='Y-m-d H:i:s',$timest=0) 把全角数字转为半角 function GetAlabNum($fnum) 把含HTML的内容转为纯text function Html2Text($str,$r=0) 把文本转HTML function Text2Html($txt) 输出Ajax头 function AjaxHead() 中文截取2,单字节截取模式 function cn_substr($str,$slen,$startdd=0) 把标准时间转为Unix时间戳 function GetMkTime($dtime) 获得一个0000-00-00 00:00:00 标准格式的时间 function GetDateTimeMk($mktime) 获得一个0000-00-00 标准格式的日期 function GetDateMk($mktime) 获得用户IP function GetIP() 获取拼音以gbk编码为准 function GetPinyin($str,$ishead=0,$isclose=1)

dedecms通用消息提示框 function ShowMsg($msg,$gourl,$onlymsg=0,$limittime=0) 保存一个cookie function PutCookie($key,$value,$kptime=0,$pa="/") 删除一个cookie function DropCookie($key) 获取cookie function GetCookie($key) 获取验证码 function GetCkVdValue() 过滤前台用户输入的文本内容 // $rptype = 0 表示仅替换html标记 // $rptype = 1 表示替换html标记同时去除连续空白字符// $rptype = 2 表示替换html标记同时去除所有空白字符// $rptype = -1 表示仅替换html危险的标记 function HtmlReplace($str,$rptype=0) 获得某文档的所有tag function GetTags($aid) 过滤用于搜索的字符串 function FilterSearch($keyword) 处理禁用HTML但允许换行的内容 function TrimMsg($msg) 获取单篇文档信息 function GetOneArchive($aid)

新产品项目开发规范

项目开发规范文档编写人:徐文兵日期:2009-7-20 审核人:日期: 批准人:日期:

修改记录(REVISION CHART)

1 概述 目的与概述 本文档为XX公司的开发规范文档,给开发团队提供开发标准和规范。 整体说明 在开发规范中包含了两个部分,第一部分是项目开发流程规范,主要阐述在项目开发过程中的各个阶段的规范。第二部分为Coding开发规范,Coding 开发规范阐述了在一个框架中的各个层的开发规范 (注:在第一版中不包含对工作流开发的规范制定) 覆盖范围 阅读对象 1.项目管理人员 2.系统设计人员 3.系统开发人员 参考资料 略

2 项目开发流程规范 2.1 业务需求调研阶段 ●调研的目标 系统层面:客户的系统运行环境 业务层面:了解客户需要什么样的系统,具体了解业务目的,业务逻辑,业务数据,客户的操作习惯,页面风格习惯等。 ●调研的准备工作: 行业知识的准备: 了解客户的行业背景,行业领域的业务术语,含义。结合客户行业背景,了解客户的业务知识。 业务专家需求: 在行业领域的复杂度不高的情况下,业务分析人员直接收集并学习行业知识就可以了,但行业知识的准备工作还是要做的 在行业领域业务复杂度高的情况下,需要业务专家对客户的业务的进行整理。 ●调研的流程: 第一步,项目启动阶段了解客户的IT环境。 第二步,讨论并具体确定客户系统的范围,并获得客户业务功能点的原始的单据。在这个过程中准备一个本和一只笔记录讨论的业务信息第三步,整理业务信息,和原始表单,抽取出有效业务信息,并对于不明确的业务信息进行整理和归类,并制作成问卷形式进一步调研。 第四步,发放调研问卷,再次进行业务调研(直接转到三) 第五步,卷写调研问卷,并内部评审 第六步,调研问卷客户评审并确认。 ●调研阶段的交付项(可配置项) 软件需求说明书 软件需求说明书的目录: 1 客户行业背景 2 客户系统的意义 3 客户系统运行的环境 4 业务功能点描述(业务目的,业务逻辑,业务数据,优先级别,使用频率等) 5 客户的操作习惯,页面风格习惯。

JAVA与PHP语言对比

Java平台与PHP语言对比 开发语言对比 JAVA版本比交稳定、安全、跨数据库,但部署、环境配置、维护都比较复杂,而且里面没有涉及报表系统。虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSP Parser)转换成Servlet代码,然后Servlet代码被Java编译器编译成 .class 字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语言(Script Language)版。 由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA – Write Once, Run Anywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。因此,JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。 PHP的源代码完全公开,在 Open Source 意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得 PHP 无论在 UNIX 或是 Win32 的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。 数据库对比 SQL server因为是仅支持Windows系统,而且安全性不理想(多次出现严重安全漏洞,如红色代码病毒事件),所以不在通达的考虑之列。而Oracle数据库安装、配置、维护都很复杂,需要专业的数据库管理员,较难广泛采用。同时,考虑到价格因素,通达OA没有基于这两种数据库。 MySQL数据库具有快速响应、容量大、安装配置简单、便于远程维护、跨平台的特点,是数据库软件中的黑马。对于OA系统这种要求支持大量用户快速响应的应用,是极为合适的,用户实际使用效果的反馈也非常好。 推荐:根据贵单位的实际情况,我们建议使用PHP版本因为贵单位的一些要求需要用报表系统实现,性价比更高,并且用PHP版本完全能满足贵单位的需求。价格表

THINKSNS常用函数

Thinksns常用函数一览表: 以下是extend.php: *function get_client_ip(){}获取客户端IP地址 *function msubstr($str,$start=0,$length,$charset="utf-8",$suffix=true)字符串截取,支持中文和其它编码 *function mStr($str,$length,$charset="utf-8",$suffix=true)字符串截取,支持中文和其它编码 *function rand_string($len=6,$type='',$addChars='')产生随机字串,可用来自动生成密码默认长度6位字母和数字混合 *function build_verify($length=4,$mode=1)获取登录验证码默认为4位数字 *function byte_format($size,$dec=2)字节格式化把字节数格式为B K M G T描述的大小 *function is_utf8($string)检查字符串是否是UTF8编码 *function highlight_code($str,$show=false)代码加亮 *function h($text,$type,$tagsMethod=true,$attrMethod=true,$xssAuto= 1,$tags=array(),$attr=array(),$tagsBlack=array(),$attrBlack=array())过滤得到安全的html //function h($text,$tags=null)输出安全的html //function text($text,$parseBr=false)输出纯文本 function safe($text,$type='html',$tagsMethod=true,$attrMethod=true,$xssAuto= 1,$tags=array(),$attr=array(),$tagsBlack=array(),$attrBlack=array()) *function t($text,$parse_br=false,$quote_style=ENT_NOQUOTES)转换为安全的纯文本 //function unescape($str)解析jsescape //function ubb($Text)解析UBB //function build_count_rand($number,$length=4,$mode=1)随机生成一组字符串 function remove_xss($val) *function list_to_tree($list,$pk='id',$pid='pid',$child='_child',$root=0) *function list_sort_by($list,$field,$sortby='asc')对查询结果集进行排序 *function list_search($list,$condition)在数据列表中搜索 //function send_http_status($status)发送Http状态信息 //function send_http_header($type='utf8')发送常用http header信息 //function imagecreatefrombmp($fname)bmp图像处理兼容函数 //function imagebmp(&$im,$filename='',$bit=8,$compression=0)bmp图像处理兼容函数 *function friendlyDate($sTime,$type='normal',$alt='false')友好的时间显示 *function dateFormat($sTime,$format=null)时间显示 //function getMid()获取当前登录用户的UID //function getUserName($uid,$lang='zh')获取用户姓名 *function getUserAtString($uid,$type='uid')获取用户Gid[Mentor项目] //function getUserSpace($uid,$class,$target,$text,$icon=true)返回解析的空间地址 //function getUserInfo($uid,$uname,$mid,$status=false)获取用户详细信息 *function getFollowState($uid,$fid,$type=0)获取关注状态 *function isfavorited($weibo_id,$uid,$weibo_id_array=null,$key='')检查给定用户是否收藏给定微博 *function isBlackList($uid,$fid)是否为黑名单成员 *function getUserFace($uid,$size)获取用户头像 function getUserFace($uid,$size) //function convertUidToPath($uid)将用户ID转换为三级路径 //function getUserGroupIcon($uid)获取给定用户的用户组图标 function getSubBeKeyArray($origin,$key) *function getSubByKey($pArray,$pKey="",$pCondition="")去一个二维数组中的每个数组的固定的键知道的值来形成一个新的一维数组

PHP从入门到精通(免费)

1.分界标示符 PHP分界标示符确定PHP脚本的开始和结束位置,在PHP语言中有四种不同风格的分界标示符可以让PHP代码嵌入到HTML代码中,分别如下: a.PHP标准分界符: b.PHP简写分界符: c.JavaScripte 和VBScript风格分界符: d.ASP风格分界符: <% 和%> 2.标示符:由字符,数字,下划线组成,首字母必须是字符或下划线 变量以$开头。 3.PHP是区分大小写的。 4.语句以分号结束 5.注释: /* */ // # 共上面三种 6.数据类型:integer,double,string,array,object(对象类型),Boolean,resource(资源),NULL 7.字符串的定义:用双引号或者单引号,但有区别 双引号里面的变量和转义字符都会被解析,而单引号里面的就都当做是字符串来处理。如果在双引号中要想不解析变量,就可以用’\’加在前面。 "; print 'nihao,are you $str = $str'; ?> 8.数组初始化: 数组定义: $arr = array(); $arr[0]='nihoa'; $arr[1]=1; 正常数组初始化: 方式一: $arr_family=array('LinNa','Jhon','Peter'); 方式二: $arr_family[] = 'LinNa';

项目开发规范

项目开发规范 1.Java编程规范 1.1命名规范 定义这个规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性,减少项目组中因为换人而带来的损失。 1.Package的命名:包的名字都由一个小写字母组成。 2.Class的命名:类名必须由大写字母开头,其它字母都小写的单词组成。 3.方法的命名:方法名必须由一个小写字母开始,后面的单词用大写字母开始。 4.变量的命名:变量名必须由一个小写字母开始,后面的单词用大写字母开始。 5.Static final变量的命名:static final变量的名字应该都大写,并且指出完整含义。 6.数组的命名:数组应该以byte [] buffer的形式,而不是byte buffer[]的形式定义。 1.2Java文件样式 1.版权信息:版权信息必须在java文件的开头,比如: /** *Copyright ? 2000 Shanghai XXX Co. Ltd. *All right reserved */ 2.数据库设计规范 2.1命名规范 1.数据库文件名:使用汉语拼音或者英文单词作为文件名,一律使用小写。 2.数据库表名称:数据库表名由前缀tb加实际名字组成,实际名字英文首字母大写 3.数据库表字段名称:每个单词首字母大写。 4.sql语句规范:所有sql语句关键词如:select,update等均大写。 3.网页设计约定 3.1命名规范 1.所有控件id号均由开发人员名称首字母作为前缀。 2.js代码命名规范参考java编程规范。 4.文档书写规范 4.1需求分析书写规范 1.目的和对象:简明编写需求说明书的目的,指明读者对象; 2.项目背景描述: a.项目的委托单位、开发单位和主管部门。 b.该软件系统与其他系统的关系,描述本项目的适应场合及处理业务。 c.项目名称:本项目的名称,包括项目的全称、简称、代号、版本号。 d.名称定义:列出文档中用到的专门术语的定义和缩写词的原文,对重要的或者有 特殊意义的名词进行定义。 3.调研情况描述:描述主要的调研活动及对象。 4.用户特点: a.用户业务描述:描述适用本项目处理的业务。 b.用户情况:介绍本项目的用户情况,包括:用户的工作流程;用户的相关部门及 职责;用户的技术水平;用户原有系统的情况:介绍用户现在使用的系统的主要情况,包括主要的不足。 5.任务概述

PHP函数

函数 计算机编程之所以存在,就是为了自动完成各种任务,从按揭还贷计算到确定一个人每天最佳的卡路里摄入量,这些任务可谓林林总总,形式各异。不过,随着这些任务变得越来越复杂,你会发现它们往往由另外一些重复的任务组成。例如,在电子商务应用中,可能需要在多个不同页面上验证一个E-mail地址,如新用户注册来使用一个网站时,有人希望增加一条产品评论时,或者一个访问者订阅一份刊物时,此时都需要验证E-mail地址。用来验证E-mail地址的正则表达式相当复杂,因此最好在一个地方维护,而不要把它嵌入到多个不同的页面中,特别地,如果需要针对一个新的域(如.museum)修改正则表达式,这一点更显重要。 令人欣慰的是,在现代计算机语言中,有这样一个概念很早就成为了其重要组成部分之一,即将这些重复的过程嵌入在一个命名的代码块中,然后在必要时调用这个代码块。这些代码块称为函数(function),如果将来要修改嵌入的过程,这就提供了一个方便的修改点,而且只需在这一处做修改,因此可以大大地减少出现编程错误的可能性,还能降低维护的开销。 调用函数 标准的PHP发行包中有1000多个标准函数。假设函数库已经编译到安装发行包中,或者通过include()或require()语句包含了相应函数库,使得函数可用,那么通过指定函数名就可以调用函数。例如,假设希望计算5的3次方,可以如下调用PHP的pow()函数: 创建函数 对于力图避免在编程中闭门造车、一切都重新发明的程序员来说,虽然PHP的众多函数库是一笔巨大的财富,但迟早都会用到标准包以外的函数,这意味着你需要创建定制函数,甚至创建整个函数库。例如,考虑下面的函数generate footer(),它将输出一个页脚: 定义之后,就可以像下面这样调用这个函数:

软件开发技术文档编写规范

软件开发技术文档编写规范 在项目开发过程中,应该按要求编写好十三种文档,文档编制要求具有针对性、精确性、清晰性、完整性、灵活性、可追溯性。 ◇可行性分析报告:说明该软件开发项目的实现在技术上、经济上和社会因素上的可行性,评述为了合理地达到开发目标可供选择的各种可能实施方案,说明并论证所选定实施方案的理由。 ◇项目开发计划:为软件项目实施方案制订出具体计划,应该包括各部分工作的负责人员、开发的进度、开发经费的预算、所需的硬件及软件资源等。 ◇软件需求说明书(软件规格说明书):对所开发软件的功能、性能、用户界面及运行环境等作出详细的说明。它是在用户与开发人员双方对软件需求取得共同理解并达成协议的条件下编写的,也是实施开发工作的基础。该说明书应给出数据逻辑和数据采集的各项要求,为生成和维护系统数据文件做好准备。 ◇概要设计说明书:该说明书是概要实际阶段的工作成果,它应说明功能分配、模块划分、程序的总体结构、输入输出以及接口设计、运行设计、数据结构设计和出错处理设计等,为详细设计提供基础。 ◇详细设计说明书:着重描述每一模块是怎样实现的,包括实现算法、逻辑流程等。 ◇用户操作手册:本手册详细描述软件的功能、性能和用户界面,使用户对如何使用该软件得到具体的了解,为操作人员提供该软件各种运行情况的有关知识,特别是操作方法的具体细节。 ◇测试计划:为做好集成测试和验收测试,需为如何组织测试制订实施计划。计划应包括测试的内容、进度、条件、人员、测试用例的选取原则、测试结果允许的偏差范围等。 ◇测试分析报告:测试工作完成以后,应提交测试计划执行情况的说明,对测试结果加以分析,并提出测试的结论意见。 ◇开发进度月报:该月报系软件人员按月向管理部门提交的项目进展情况报告,报告应包括进度计划与实际执行情况的比较、阶段成果、遇到的问题和解决的办法以及下个月的打算等。 ◇项目开发总结报告:软件项目开发完成以后,应与项目实施计划对照,总结实际执行的情况,如进度、成果、资源利用、成本和投入的人力,此外,还需对开发工作做出评价,总结出经验和教训。 ◇软件维护手册:主要包括软件系统说明、程序模块说明、操作环境、支持软件的说明、维护过程的说明,便于软件的维护。 ◇软件问题报告:指出软件问题的登记情况,如日期、发现人、状态、问题所属模块等,为软件修改提供准备文档。 ◇软件修改报告:软件产品投入运行以后,发现了需对其进行修正、更改等问题,应将存在的问题、修改的考虑以及修改的影响作出详细的描述,提交审批。 1可行性分析报告 1 引言 1.1 编写目的:阐明编写可行性研究报告的目的,提出读者对象。

相关文档
最新文档