首页 > 编程 > PHP > 正文

五十个PHP代码编写规范的技巧总结(推荐)

2020-03-22 19:06:14
字体:
来源:转载
供稿:网友
php代码编写规范在php实际项目开发中是十分重要的,毕竟php代码的规范可以省去很多不必要的bug检查,下面的这篇文章我给大家分享了五十个PHP代码编写规范的技巧。

1,使用绝对路径,方便代码的迁移:

 define( ROOT , pathinfo(__FILE__, PATHINFO_DIRNAME)); require_once(ROOT . ../../lib/some_html' target='_blank'>class.php  * PATHINFO_DIRNAME 只返回 dirname * PATHINFO_BASENAME 只返回 basename * PATHINFO_EXTENSION 只返回 extension

2,不要直接使用 require, include, includeonce, requiredonce

$path = ROOT . /lib/ . $class_name . .php require_once( $path );* if(file_exists($path)){ require_once( $path ); }

3,为应用保留调试代码

在开发环境中, 我们打印数据库查询语句, 转存有问题的变量值, 而一旦问题解决, 我们注释或删除它们. 然而更好的做法是保留调试代码。在开发环境中, 你可以:* define( ENVIRONMENT , development  if(! $db- query( $query ) if(ENVIRONMENT == development ) echo $query failed  else { echo Database error. Please contact administrator * 在服务器中, 你可以:define( ENVIRONMENT , production if(! $db- query( $query ) if(ENVIRONMENT == development ) echo $query failed  else echo Database error. Please contact administrator }

4,使用可跨平台的函数执行命令

system, exec, passthru, shell_exec 这4个函数可用于执行系统命令 * Method to execute a command in the terminal * Uses : * 1. system * 2. passthru * 3. exec * 4. shell_execfunction terminal($command)//systemif (function_exists( system )) { ob_start(); // 打开缓冲区 system($command, $return_var); $output = ob_get_contents(); ob_end_clean(); // 清空(擦除)缓冲区并关闭输出缓冲} //passthruelse if (function_exists( passthru )) { ob_start(); passthru($command, $return_var); $output = ob_get_contents(); ob_end_clean();} //execelse if (function_exists( exec )) { exec($command, $output, $return_var); $output = implode( /n , $output);} //shell_execelse if (function_exists( shell_exec )) { $output = shell_exec($command);} else { $output = Command execution not possible on this system  $return_var = 1;return array( output = $output, status = $return_var);terminal( ls 

5,灵活编写函数(判断是否是数组来编写逻辑)

function add_to_cart($item_id, $qty) if (!is_array($item_id)) { $_SESSION[ cart ][ item_id ] = $qty; } else { foreach ($item_id as $i_id = $qty) { $_SESSION[ cart ][ i_id ] = $qty;add_to_cart( IPHONE3 , 2);add_to_cart(array( IPHONE3 = 2, IPAD = 5));

6,有意忽略php关闭标签

like: ?php ......................

7, 在某地方收集所有输入, 一次输出给浏览器 重点

你可以存储在函数的局部变量中, 也可以使用ob_start和ob_end_clean

8,发送正确的mime类型头信息, 如果输出非html内容的话. 重点

$xml = ?xml version= 1.0 encoding= utf-8 standalone= yes ? $xml = response  code 0 /code  /response //Send xml dataheader( content-type: text/xml //注意header头部echo $xml;

9,为mysql连接设置正确的字符编码

mysqli_set_charset(UTF8);

10,使用 htmlentities 设置正确的编码选项 重点

php5.4前, 字符的默认编码是ISO-8859-1, 不能直接输出如à a等.$value = htmlentities($this- value , ENT_QUOTES , CHARSET);php5.4后, 默认编码为UTF-8, 这將解决很多问题. 但如果你的应用是多语言的, 仍要留意编码问题.

11,不要在应用中使用gzip压缩输出, 让apache处理 重点

使用apache的mod_gzip/mod_deflate 模块压缩内容. 开启就行了。用途:压缩和解压缩swf文件的代码等,PHP的zip扩展也行

12,使用json_encode输出动态javascript内容 而不是 echo

13,写文件前, 检查目录写权限

linux系统is_readable($file_path)is_writable($file_path)

14,更改应用创建的文件权限

chmod( /somedir/somefile , 0755);

15,不要依赖submit按钮值来检查表单提交行为

if( $_SERVER[ REQUEST_METHOD ] == POST and isset($_POST[ submit ]) ) //Save the things}

16,为函数内总具有相同值的变量定义成静态变量

static $sync_delay = null;

17,不要直接使用 $_SESSION 变量

不同的应用之前加上 不同的 前缀

18,將工具函数封装到类中(同个类维护多个版本, 而不导致冲突)

class Utility public static function utility_a() public static function utility_b() public static function utility_c() $a = Utility::utility_a(); $b = Utility::utility_b();

19,Bunch of silly tips

 使用echo取代print  使用str_replace取代preg_replace, 除非你绝对需要  不要使用 short tag  简单字符串用单引号取代双引号  head重定向后记得使用exit  不要在循环中调用函数  isset比strlen快  始中如一的格式化代码  不要删除循环或者if-else的括号        

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表