🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
##包含文件     提取出来具有通用函数的包含文件,文件后缀以`.inc`来命名,表明这是一个包含文件。     如果有多个`.inc`文件需要包含多页面,请把所有`.inc`文件封装在一个文件里面,具体到页面只需要包换一个`.inc`文件就可以了。     如:`xxx_session.inc`、`xxx_comm.inc`、`xxx_setting.inc`、`myssql_db.inc`。     把以上文件以以下方式,封装在`xxx.basic.inc`文件里面: ~~~`` require_once('xxx_session.inc'); require_once('xxx_comm.inc'); require_once('xxx_setting.inc'); require_once('mysql_db.inc'); ~~~ ## PHP和HTML代码的分离问题     对性能要求不是很高的项目和应用,我们建议不采用 PHP 和 HTML 代码直接混排的方式书写代码,而采用 PHP 和 HTML 代码分离的方式,即采用模版的方式处理,这样一方面对程序逻辑结构更加清晰有利,也有助于开发过程中人员的分工安排,同时还对日后项目的页面升级该版提供更多便利。 **对于一些特殊情况,比如对性能要求很高的应用,可以不采用模版方式。** ## 类的构造函数 如果要在类里面编写构造函数,必须遵循以下规则:     a.不能在构造函数中有太多实际操作,顶多用来初始化一些值和变量;     b.不能在构造函数中因为使用操作而返回false或者错误,因为在声明和实例化一个对象的时候,是不能返回错误的; ##错误返回检测规则 检查所有的系统调用的错误信息,除非你要忽略错误。 为每条系统错误消息定义好系统错误文本,并记录错误LOG。 ##引用的使用     引用在程序中使用比较多,为了公用同一个内存,而不需要另外进行复制,XXX环境下的引用使用时,需要注意下面的情况;     在对函数的输入参数中使用引用时,不能在调用的时候在输入参数前加 `&` 来引用,而直接使用该变量即可,同时必须在函数定义的时候说明输入参数来自引用,比如下面的代码: ~~~ $a = 1; function ab( &$var ) { $var ++; return $var; } $b = ab($a); // 注意,此处不能使用 $b = ab(&$a)的方式; echo $b."\n"; echo $a."\n"; ~~~ 此时 `$a` 和 ``$b`` 都是 2; XXX环境下对引用的特殊要求源自 php.ini 文件里面的`allow_call_time_pass_reference` 项设置,对外公开的版本是 `On`,这样就可以支持`&`直接加到调用函数时变量前面进行引用,但是这一方法遭到抗议,并可能在将来版本的 PHP/Zend 里不再支持。受到鼓励的指定哪些参数按引用传递的方法是在函数声明里。你被鼓励尝试关闭这一选项(使用`off`,XXX的所有运行环境下都是`off`)并确认你的脚本仍能正常工作,以保证在将来版本的语言里它们仍能工作。 ##PHP项目开发中的程序逻辑结构     对于 PHP 项目开发,尽量采用 `OOP` 的思想开发,尤其在 PHP5 以后,对于面向对象的开发功能大大提高。     在 PHP 项目中,我们建议将独立的功能模块尽量写成函数调用,对应一整块业务逻辑,我们建议封装成类,既可以提高代码可读性,也可以提高代码重用性。比如,我们通常将对数据库的接口封装成数据库类,有利于平台的移植。     重复的代码要做成公共的库。(除了我们在 `plug-in` 产品上遇到的情况,该产品系列有多个相类似的产品,为了尽可能地减少安装包尺寸,不适合将这些产品共用的所有函数做成公共的库)。