php编程代码规范学习笔记(适合初学者)(1/2)

 更新时间:2016年11月25日 14:58  点击:1522
php编程代码规范我们会从几个方法来介绍,如:命名规范 常用名词 代码重构了,下面我先整理一些规范之后再整理一些笔记,希望文章对各位朋友会带来一些帮助哦。

命名规范

Θ 类文件都以.class.php为后缀,使用驼峰法命名,并且首字母大写,例如 Pay.class.php;
Θ 类名和目录_文件名一致。例如:类名Zend_Autoloader的目录是Zend/Autoloader.class.php;
Θ 函数的命名使用小写字母和下划线的方式。例如:get_client_ip;
Θ 方法的命名使用驼峰法,首字母小写或者使用下划线”_”,例如listComment(),_getResource(),通常下划线开头的方法属于私有方法;
Θ 属性的命名使用驼峰法,首字母小写或者使用下划线”_”,如$username,$_instance,通常下划线开头的属性属于私有属性;
Θ 常量以大写字母和下划线”_”命名,如”HOME_URL”;

常用名词

1>list名词(单数),如listApple,一看我们就知道读取苹果列表,我们没有必要写成getApples或者listApples或readApples——因为get我们规定一般用于读取单个数据,如getApple.listApples不加s我们也知道是取苹果列表(保证尽量缩短变量命名);
2>get名词(单数);
3>名词Total,表示某个东西的总数。如expenseTotal;
4>found:表示某个值是否已经找到;
5>uccess或ok:一项操作是否成功;
6>done:某个工程是否完成;
7>error:是否有错误发生;
8>result:返回的结果

代码重构

1.函数或者方法体内的代码尽量控制在一个屏幕内。
2.类中不使用的方法随机删除。
3.修改别人的类中方法,要签名。
4.在每个模块内写个readme文件(用于比较复杂业务的说明或代码说明)。
5.尽量让每个类做自己的事,每个函数做一件事。

下面补充一些方法

一、文件格式

1. 对于只含有 php 代码的文件,我们将在文件结尾处忽略掉 "?>" 。这是为了防止多余的空格或者其它字符影响到代码。
例如:

 代码如下 复制代码
<?php
$foo = 'foo';
2. 缩进应该能够反映出代码的逻辑结果,尽量使用四个空格,禁止使用制表符TAB,因为这样能够保证有跨客户端编程器软件的灵活性。
例如:
if (1 == $x) {
    $indented_code = 1;
    if (1 == $new_line) {
        $more_indented_code = 1;
    }
}

3. 变量赋值必须保持相等间距和排列。
例如:

 代码如下 复制代码
$variable = 'demo';
$var      = 'demo2';

4. 每行代码长度应控制在80个字符以内,最长不超过120个字符。因为 linux 读入文件一般以80列为单位,就是说如果一行代码超过80个字符,那么系统将为此付出额外操作指令。这个虽然看起来是小问题,但是对于追求完美的程序员来说也是值得注意并遵守的规范。
5. 每行结尾不允许有多余的空格。

二、命名约定

1. 类文件都是以“.class.php“为后缀,且类文件名只允许字母,使用驼峰法命名,并且首字母大写,例如:DbMysql.class.php 。
2. 配置和函数等其他类库文件之外的文件一般是分别以“.inc.php“和”.php“为后缀,且文件名命名使用小写字母和下划线的方式,多个单词之间以下 划线分隔,例如config.inc.php , common.php,install_function.php 。
3. 确保文件的命名和调用大小写一致,是由于在类Unix系统上面,对大小写是敏感的。
4. 类名和文件名一致(包括上面说的大小写一致),且类名只允许字母,例如 UserAction类的文件命名是UserAction.class.php, InfoModel类的文件名是InfoModel.class.php 。
5. 控制器类以Action为后缀,例如 UserAction、InfoAction ,模型类以Model为后缀,例如UserModel、InfoModel ,其他类也分别以相应分类为后缀,例如Service 、Widget。
6. 方法名只允许由字母组成,下划线是不允许的,首字母要小写,其后每个单词首字母要大写,即所谓的 “驼峰法命名” 规则,且越详细越好,应该能够描述清楚该方法的功能,例如switchModel、findPage。
7. 属性的命名只允许由字母组成,下划线是不允许的,首字母要小写,其后每个单词首字母要大写,即所谓的 “驼峰法命名” 规则,例如tablePrefix、tableName 。
8. 对于对象成员的访问,我们必须始终使用 “get” 和 “set” 方法。例如:

 代码如下 复制代码

class Foo
{
    protected $_testObj;
    public function getTestObj()

    {
        return $this->_testObj;
    }
    public function setTestObj($testObj)
    {
        $this->testObj = $_testObj;
    }
}

php文件怎么打开呢?php全简Hypertext Preprocessor 中文名字为超文本预处理器了,它和c,c++,java,perl一样可以进行一些算法操作,同时php主要是用在web应用开发中,php入门门槛较低,易于学习,使用广泛,主要适用于Web开发领域。PHP的文件后缀名为php了。

php文件是什么文件?


php文件怎么打开呢?php全简Hypertext Preprocessor 中文名字为超文本预处理器了,它和c,c++,java,perl一样可以进行一些算法操作,同时php主要是用在web应用开发中,php入门门槛较低,易于学习,使用广泛,主要适用于Web开发领域。PHP的文件后缀名为php了。

php文件怎么打开?

php文件打开方法很简单我们可以直接使用记事本文本就可以打了,如果是WEB开发应用我们可以使用dw Notepad ++ Eclipse PDT Notepad2等等都可以打开了,这种打开只能查看源文件了无法执行。


php文件怎么运行

前面介绍了php是一款Web开发领域一门编程语言了,我们需要php环境的支持才可以运行哦。

php环境有那些

php可以在windows或linux中运行,在windows中支持环境有iis+php或apache+php环境
linux中我也可以使用apache+php或nginx+php环境

php环境怎么配置

iis+php环境配置方法

1>  解压到 c:/php 目录.

打开 c:/php 目录,找到 php.ini-dist文件.重命名为 php.ini .

2>  打开php.ini 文件.

找到 ;include_path = ".;c:/php/includes" 该行.
修改为 include_path = "c:/php/includes"
找到 extension_dir = "./"
修改为 extension_dir = "c:/php/ext"
找到 ;extension=php_mysql.dll
修改为 extension=php_mysql.dll
找到 ;session.save_path = "/tmp"
修改为 session.save_path = "c:/winnt/temp"
如果操作系统是win2003 则为 "c:/windows/temp"
本目录内提供php.ini可以直接使用.适用windows2000.

3>  拷贝 php.ini到 c:/winnt

  拷贝 libmysql.dll 到 c:/winnt/system32

4>  新建目录d:/forphp做为测试php网站目录.

在该目录下新建记事本文件,重命名为index.php内容为 <? phpinfo(); ?> 本目录内有index.php供使用.

5>  确保Iusr_mochinename用户对d:/forphp有完全控制权限.

对c:/php有读取运行权限.(如果d盘为fat32文件系统格式,就不用设置d:/forphp权限了)

6>  打开iis管理器.

新建web站点.指向到d:/forphp目录.站点主机头任意指定.(为方便浏览,使用本机ip)

7>  右键站点--属性--"主目录"选项.

点下面"配置".弹出"应用程序配置",点"添加".可执行文件,浏览选中 c:/php/php5isapi.dll  确定. 扩展名 写 .php

8>  重起IIS. 即可实现iis站点支持php脚本.

PHP与IIS共存的设置

第一步,解开PHP5.0压缩包,可以把它放在C:/PHP5下面。
 
第二步,把C:/PHP5下面的php.ini-dist文件复制到WINNT目录下,并改名成php.ini。你不需要修改任何参数就可以运行,当然根据不同情况你可以自行修改某些参数。
 
第三步,把C:/PHP5/php5ts.dll复制到C:/WINNT/system32目录下。
 
第四步,启动计算机管理。
 
第五步,在计算机管理窗口上展开“服务和应用程序”/“Internet信息服务”,在“默认Web站点”上点鼠标右键,选属性,这时系统弹出“默认Web站点属性”窗口:
 
第七步,在“默认Web站点属性”窗口上点取“ISAPI筛选器”标签,点击“添加”按钮,在弹出的“筛选器属性”窗口的“筛选器名称”中输入“PHP”,“可执行文件”中输“C:/PHP5/sapi/php5isapi.dll”,确定。
  
第八步,在“默认Web站点属性”窗口上点取“主目录”标签,点“配置”按钮,在弹出的“应用程序配置”窗口中点取“添加”按钮,在弹出的“添加/编辑应用程序扩展名映像”对话框中的“可执行文件”文本框中输入“C:/PHP5/sapi/php5isapi.dll”,“扩展名”文本框中输入“.php”(注意一定要有那个点),确定。
 
第九步,打开命令行窗口,输入“net stop iisadmin”命令,终止IIS服务。系统会问你是否要将相关的服务也停止,答是。等到全部关闭。
 
第十步,输入“net start w3svc”命令,重新启动IIS服务。


apache配置php环境

1.我们在电脑中安装apache环境,
2.然后我们下载php版本之后解压在C:盘php目录下

然后我们在apache紧后面加上

LoadModule php5_module "c:/php5/php5apache2_2.dll"
AddType application/x-httpd-php .php
PHPIniDir "c:/php5"

再重启 apache这样就配置好了

然后我们再创建一个网站把php 文件放到网站目录下就可以运行了,代码如下

<?
define("test","HELLO WORLD!");
echo test
?>

输出为

HELLO WORLD

友情提示,本文章只是大概的介绍了php是什么文件的同时附加了php文件打开与让php运行的一些思路了,具体如果要真正的运行php我们还需要更细的去配置apache环境才可以哦,因为真正应用还有mysql数据库的安装配置哦。

想起我们N年前学习php或C语言时发会发对于$a++ 与++$a总是很不了解,不知道是先加一还是循环之后再加一,下面我来给各位详细的介绍一下吧。

这里我们来聊聊PHP的运算符号的升级版: ++,--,呵呵。

++  即自增,

--    即自减。

实际运用:

$a = 10; $a++ = ?  //先用再加,最后结果为11

$a = 10; ++$a = ?  //先加再用,最后结果为11

$a = 10;

$b = $a++ + ++$a;

echo $a;

echo $b;   //算一下吧,结果我回复解答


来一段例子,来引出重点。

$a = true;

echo $a++;

echo $a + 1;

$b = 'c';

echo $b++;

echo $b++;


上面四个输出你是否知道正确答案呢,下面是总结的一些规律,各位也可以亲自动手实验。

1. 布尔型不参与 ++ 运算, 不会进行类型转换而参与自增。所以第一个输出是1。

2. 布尔型参与算数运算如+,-,会自动进行类型转换,所以第二个输出是2。

3. PHP中字符串++表示升序,所以第三个输出是c, 第四个输出是d。

在php中定义常量我们使用的是const来定义了并且const定义常量是不需要$符号了,如果使用$就是变量 了哦,下面我来一起来看看类 const常量访问

例子。const常量访问

 代码如下 复制代码

class Math {
   const num=3.14;
  
   public function showNum(){
       return self::num;
   }
}

echo Math::num."<br/>";

$math=new Math();
echo $math->showNum();

结果:

3.14
3.14

例子,变量访问

 代码如下 复制代码

class Math {
   const num=3.14;
   var   $abc='aa';
   public function showNum(){
       return self::num;
   }
}

echo Math::abc."<br/>";

提示Fatal error: Undefined class constant 'abc' in E:xxx1.php on line 12

总结:所以const是定义变量可以使用Math::num来访问而 var定义的内部变量使用Math::num访问时就会提示变量未定义了哦。

php排序算法有很多种其实我们其它程序能实现的算法在php中同样可以实现,下面我来介绍PHP中冒泡排序与快速排序例子,希望对各位会带来帮助哦。

快速排序法:

 代码如下 复制代码

function sortArray($arr){
    $count=count($arr);
    for($i=0;$i<$count-1;$i++){
        for($j=$i+1;$j<$count;$j++){
            if($arr[$i]>$arr[$j]){
                $tem=$arr[$i];
                $arr[$i]=$arr[$j];
                $arr[$j]=$tem;
            }
        }
    }
    return $arr;
}

冒泡排序法

 代码如下 复制代码

function sortArray2($arr){
    $count=count($arr);
    for($i=0;$i<$count-1;$i++){
        for($j=0;$j<$count-1-$i;$j++){
            if($arr[$j]>$arr[$j+1]){
                $tem=$arr[$j];
                $arr[$j]=$arr[$j+1];
                $arr[$j+1]=$tem;
            }
        }
    }
   
    return $arr;
}

$a=array(23,14,35,28,45,98,12,19,1,78);

print_r(($a));
print_r(sortArray($a));
print_r(sortArray2($a));

结果

PHP中冒泡排序与快速排序例子

[!--infotagslink--]

相关文章

  • 不打开网页直接查看网站的源代码

      有一种方法,可以不打开网站而直接查看到这个网站的源代码..   这样可以有效地防止误入恶意网站...   在浏览器地址栏输入:   view-source:http://...2016-09-20
  • php 调用goolge地图代码

    <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
  • JS基于Mootools实现的个性菜单效果代码

    本文实例讲述了JS基于Mootools实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
  • JS+CSS实现分类动态选择及移动功能效果代码

    本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
  • JS实现自定义简单网页软键盘效果代码

    本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
  • php 取除连续空格与换行代码

    php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
  • php简单用户登陆程序代码

    php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p>&nbsp;</p> <p>&nbsp;</p> <form name="form1...2016-11-25
  • PHP实现清除wordpress里恶意代码

    公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例...2015-10-23
  • JS实现双击屏幕滚动效果代码

    本文实例讲述了JS实现双击屏幕滚动效果代码。分享给大家供大家参考,具体如下:这里演示双击滚屏效果代码的实现方法,不知道有觉得有用处的没,现在网上还有很多还在用这个特效的呢,代码分享给大家吧。运行效果截图如下:在线演...2015-10-30
  • js识别uc浏览器的代码

    其实挺简单的就是if(navigator.userAgent.indexOf('UCBrowser') > -1) {alert("uc浏览器");}else{//不是uc浏览器执行的操作}如果想测试某个浏览器的特征可以通过如下方法获取JS获取浏览器信息 浏览器代码名称:navigator...2015-11-08
  • JS日期加减,日期运算代码

    一、日期减去天数等于第二个日期function cc(dd,dadd){//可以加上错误处理var a = new Date(dd)a = a.valueOf()a = a - dadd * 24 * 60 * 60 * 1000a = new Date(a)alert(a.getFullYear() + "年" + (a.getMonth() +...2015-11-08
  • PHP开发微信支付的代码分享

    微信支付,即便交了保证金,你还是处理测试阶段,不能正式发布。必须到你通过程序测试提交订单、发货通知等数据到微信的系统中,才能申请发布。然后,因为在微信中是通过JS方式调用API,必须在微信后台设置支付授权目录,而且要到...2014-05-31
  • PHP常用的小程序代码段

    本文实例讲述了PHP常用的小程序代码段。分享给大家供大家参考,具体如下:1.计算两个时间的相差几天$startdate=strtotime("2009-12-09");$enddate=strtotime("2009-12-05");上面的php时间日期函数strtotime已经把字符串...2015-11-24
  • php怎么用拼音 简单的php中文转拼音的实现代码

    小编分享了一段简单的php中文转拼音的实现代码,代码简单易懂,适合初学php的同学参考学习。 代码如下 复制代码 <?phpfunction Pinyin($_String...2017-07-06
  • php导出csv格式数据并将数字转换成文本的思路以及代码分享

    php导出csv格式数据实现:先定义一个字符串 存储内容,例如 $exportdata = '规则111,规则222,审222,规222,服2222,规则1,规则2,规则3,匹配字符,设置时间,有效期'."/n";然后对需要保存csv的数组进行foreach循环,例如复制代...2014-06-07
  • ecshop商品无限级分类代码

    ecshop商品无限级分类代码 function cat_options($spec_cat_id, $arr) { static $cat_options = array(); if (isset($cat_options[$spec_cat_id]))...2016-11-25
  • 几种延迟加载JS代码的方法加快网页的访问速度

    本文介绍了如何延迟javascript代码的加载,加快网页的访问速度。 当一个网站有很多js代码要加载,js代码放置的位置在一定程度上将会影像网页的加载速度,为了让我们的网页加载速度更快,本文总结了一下几个注意点...2013-10-13
  • php上传图片学习笔记与心得

    我们在php中上传文件就必须使用#_FILE变量了,这个自动全局变量 $_FILES 从 PHP 4.1.0 版本开始被支持。在这之前,从 4.0.0 版本开始,PHP 支持 $HTTP_POST_FILES 数组。这...2016-11-25
  • Smarty模板学习笔记之Smarty简介

    1、简介Smarty是一个使用PHP写出来的模板PHP模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目...2014-05-31
  • vue项目,代码提交至码云,iconfont的用法说明

    这篇文章主要介绍了vue项目,代码提交至码云,iconfont的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-30