5 个良好的编程习惯,目前还没有任何加密产品能

2019-07-29 作者:编程   |   浏览(172)

复制代码 代码如下:

但是PHP反编译系统的出现却迅速引起了Zend公司甚至整个PHP用户群的恐慌,包括上述产品在内的几乎所有大型PHP产品全部出现了破解版本甚至出现了完整的源代码。如此一来,Zend不得不向Cracker们低头,承认所有的加密技术都有破解的办法,并承诺对加密产品进行改进以便提供更强的保护。

根据具体的情况,一般的开发人员往往比优秀的开发人员的效率低 10%~20%。优秀的开发人员的效率更高,因为他们拥有丰富的经验和良好的编程习惯。不良的编程习惯将会影响到效率。本文通过展示一些良好的编程习惯,帮助您成为更优秀的程序员。

PHP爱好者必喜欢PEAR,我们的目的就是希望将PEAR介绍给PHP的程式开发人员,我个人认为引用程式库的程式开发方式已经渐渐成为趋势了,除了php、JSP外,像perl、C 也都有专属的程式库供其开发人员引用。
借着引入PEAR,php的程式开发者除了可以大幅缩減撰写程式码的工作与时间外,还可以用很简单的方式得到许多強大的动态网页功能,我将会列举许多的实例,让大家看了后,一定会啪掌叫好,並深深的迷上了PEAR。此外,程式码很容易维护,安全性高也是PEAR另2个很吸引人的优点,PAER程式库宛如模组,可以轻易的抽換与更新,完全不会影响到其他的程式码。
我们是从最基本的观念介绍起,包括PEAR这个专有名词的含意? 在那地方取得PEAR套件(package)? 如何使用PEAR套件等?
从第2章起,我们首先介绍PEAR的起源、历史与特色,让大家对PEAR有个基本的认识。
第3章我们将会介绍PEAR程式库套件的安装与管理方法,这一章是非常重要的,在使用PEAR之前,必需先把这些基本功夫学好,虽然有点复杂,但是学会之后受用无穷,让您的PHP程式开发效率倍增,功能随着递升。
第4章,是由简单的范例介绍如何引用PEAR程式库来开发PHP程序,让我们了解PEAR的一般使用方法,也为程式库的使用建立一个基本的操作流程。
在第五章我们将介绍几个用法简单又功能強大的程式库套件的范例,让大家可以在动态网页上快速建立一些您以前无法想像而又非常酷的功能,让您的程式开发功力立刻提高。例如:
◆ 让网页可以提供天气预报的功能,增加网页的附加价值。
◆ 用很简单的方法在服务器上建立网页的快取(Cache),加快网页的开啟速度。
◆ 在动态网页上搜寻某台主机有提供那些PORT号的服务。
◆ 在动态网页上查询某个网域名称(DNS),找出相对应的IP。
◆ 动态產生HTML表格。
◆ 快速建立「客戶回函」系统,让网页浏览者可以从网页上寄信给网站管理员。
◆ 让网页可以记錄网页浏览者的行为,也就是做Log。
第6章到第13章,我们会很详细地介绍一些很重要,很常用,但较为复杂的程式库套件的使用方法,这几章都是以套件为介绍的主轴,也就是說,一章只介绍一个套件,务求将这几个重要套件中较为重要功能,详细地介绍给大家。
这些套件(packages)包括:资料库连線套件、表单制作套件、身份认证套件、档案上传套件、分页套件等等。
最后,附錄A会对PEAR的官方网站做详细的介绍,当您进入PEAR的世界后,您一定会经常来这个网站寻找资料。知道如何利用官方网站,对于那些PEAR的PHP开发者而言,是十分重要的。附錄B则会对PHP的物件导向程式设计做简单的介绍。
喜欢和适合使用PEAR者分类如下:
◆ php爱好者,那一定要用PEAR,因为它絕对棒极了。
◆ PHP的专业程式设计员。您需要的是程式码的安全性,可重复性,以及良好的工作效率,PEAR絕对是必备的。
◆ PHP的程式玩家,想要开发更有趣的,功能更強的应用程式,卻不想被撰写PHP程式的一些烦恼绑缠,PEAR绝对可以满足您的要求。
◆ 自己撰写PHP程式,卻不喜欢每次都要从零开始,一字一字地敲打程式码,PEAR可以提高您的工作效率。
◆ 您想要学习功能性強,安全性高的PHP,当学会了PHP的基本语法后,可以试著使用PEAR。
◆ 您需要量身定造的PHP应用程式,換言之,您不喜欢像XOOPS之类的套装应用程式,来试试PEAR吧。
◆ 您需要容易维护的PHP应用程式,不想日后常修改程式码,或因为PHP的改版而将整个程式重新设计。
◆ 您希望您的PHP程式可以物件导向化,方便程式的抽換与模组化。
◆ 您希望您的PHP功力更上一层楼,想要学习更多的PHP相关知识,透过PEAR的使用或观看PEAR的原始码,不失为一个好的学习途径。
PEAR就是专门为有以上这些需求的人所写的。
使用PEAR就像建一座房子一樣。它是让您用预制件的方式,建一栋自己设计兼施工的大房子,但卻不需要自己搅拌水泥,自己準备沙土、石头,自己燒磁砖.自己做铝门窗,自己做木工装饰等等...。
PEAR就像是已经针对您的需求所订制好並準备好的预制件,您只需要运用创意将他们组合起来就可以了。
我门在使用PEAR来编写PHP程式时,必需有一个先決条件,就是必需对PHP的相关知识有一定的认识。
若您不知道甚麼是PHP,什麼是Apache、Mysql,或者您虽然知道,卻还不会PHP的基本语法,那麼,本文章目前並不适合您。建议您快去买些PHP、Apach、Mysql的入门书籍,详加研读后,才来看本文章。
大家並不一定要是PHP高手,但一定需要具备看懂基本PHP程序码的能力。无论如何,首先对PHP的热爱才是閱读本书最基本的先決条件。
第二章
PHP有许多的规范与语法,我们不做介绍,请大家有空去閱读有关PHP的书籍,我们重点介绍的是PHP发展到4.0版以后。加入了物件导向(Object-Oriented Programming Language)的功能,虽然还无法像了Java一樣做到完全的物件导向,但比起前版本PHP3.0已经是一大进步,也对PHP的程序开发者提供了更強大与更方便的开发能力。
PHP 5.0版以上的版本,已经转变成为彻底的物件导向化,提供了更多完全物件导向功能。我们所介绍的PEAR程式库对PHP 4.3.0以上的版本是完全的支援。这一点请大家放心。
为了大多数人著想,也考虑到PHP向下的相容性,本书的內容与范例都可以在PHP 4.3.0版以上的环境中执行,因为PEAR完全支援PHP 4.3.0以上的版本,小于PHP 4.3.0版的环境,PEAR大部分也是支援的,只有小部分不支援。
什么是PHP的物件导向? 物件导向的语法在传统的PHP程式中较少看到,但若您了解JAVA这种程式语言的话,您应该可以知道什麼足物件导向,我会在附錄B有针对物件导向做简单的說明。
另外,我要強调的是:PHP除了基本语法外,內建的函式就有超过上千个,橫跨上百种类別,包括文字类函式、数字类函式、资料库类、图形类等等,功能相当強大,令人吒舌。但相对於程式开发者,如何善用这些函式,配合PHP的语法撰写有效又好管理的程式码,将会是一大挑战。
在今天,有PEAR这个由全世界众多顶尖的PHP高手所共同生產的智慧结晶,可以让我们轻松又有效率地撰写程式码,並克服许多撰写上的困难。以武侠界的例子来說,用PEAR撰写PHP就宛如数百位武林高手灌注他们的功力给程式开发者。让程式开发者不用从最基本的练功,紮马步练起,借用他们的功力就可以很轻松的让功力倍增,效率倍增。
說了半天,到底什麼是PEAR?下一个单元笔者就来做个介绍。
PEAR这个字单纯就字面上而言意思是「梨子」。
一颗梨子。官方网站的网址为
PEAR官方网站的logo中可以看到例子。
PEAR的开始是从1999年11月2l日。有一位名叫Stig S.Bakken的先生,这位仁兄发起了一个专案,並号召许多的PHP高手来共同投入,他首先为这个专案建立了一些程式码的基础规则,希望PHP的开发者加入这个专案时所撰写的PHP程式码都需要遵守这些规则。
这个专案名称就是PEAR,其实是PHP Extension and Application Repository的缩写,意即「PHP的延续与应用程式库」,简单的說,PEAR其实是一个PHP的程式库。
Bakken先生建立的程式码基础如下,我只概略說明一下,並不详谈细节的部分:
◆ 如果开发者要提供PHP程式库,程式的结构必须物件化。
◆ 程式的缩排要遵循一定的格式
◆ 程式中类別的命名也要遵循一定的格式
◆ 程式码的註解要有一定的格式
◆ 档案命名要有一定的格式
◆ 程式库撰写完成后要包装成套件,而套件的包装与安装方式,也有一定的格式。
该专案欢迎所有的PHP开发者来共同开发PHP程式库,只要他们愿意遵守上述的程式码基础规则。Bakken先生並组织了一组团队作为这个专案的控制主体,负责审核所有参与专案的开发者所提供的程式库,若通过审核,就将程式库分类並放入官方网站中供其他开发者下载使用,另外,这个团体也负责维护官方网站的维护与更新。
有些人可能会很好奇,为什麼有人会愿意免费撰写程式库让别人来使用呀? 这就是开放原码世界的精神一互助、共享。试想,若每个开发者针对自己专精的部分开发程式库给其他人使用,同时也享用別的开发者所释出的程式库,是不是可以达到互助的目的,让每一个开发者共享所有的开发者的成果.不必所有的程式码都要自己撰写。
更棒的是,这些程式库是免费开放给全世界的人使用的,不只参与程式库开发的开发者可以享用(这种作法与Java或perl提供函式库的作法是一樣的)。
因此,全世界所有的PHP开发者可以省去许多撰写程式码的时间,又因为使用程式库的开发者可以回报程式库的缺失给原开发者,原开发者也因此会不断的修正这些程式库,所以程式码相对安全。另外,程式库开发者也会随着时代演进,加入新的功能到程式库中,让程式库的使用者可以与时俱进。
详细情況可参閱PEAR的官方网站中所提到关於开发PEAR的目的說明:
我在文章的最后有一章附錄:PEAR官方网站的介绍,大家可以先参考一下。
如果您还不太了解我介绍所谓「程式库」的意思,沒关系,下一节就会透过实际的例子加以說明。
2-3 所有套件简介
▓ 程式库VS套件
介绍所有套件之前,我们必须釐清两个名词,以免读者混淆了,一个就是「程式库」,另外一个就是「套件」。
假如我是是一个PHP的开发者,发展了一个可以处理所有资料库存取「程式库」,並想将这个程式库加入PEAR分享给全世界使用。当我撰写完理资料库的程式库后,我必须按照PEAR的规定,将程式库压缩成一个「件」档,放在PEAR官方网站供所有人下载,也由於遵循PEAR的规定来压缩档案,这个套件就可以用PEAR的套件管理指令来安装或管理,这对PEAR使用者而言是相当便利的,关於套件管理指令,我会在下一章做完整的說明经过上述的說明,相信读者应该了解何谓「程式库」、何谓「套件」?其实,简单的說,把程式库包装好就变成了套件。
▓ 套件与分类
PEAR截至目前为止释出的套件已高达三百多个,共分为35大类,而且不断增加中。大家可以想像全世界的顶尖PHP开发者的结合,是一股多大的团结力量。下图是官方网站中套件的分类:
PEAR因为释出的套件太多了,为了管理上的方便所以依套件的功能将套件做分类,同一类的套件在效果上都有相关性,但提供的功能卻不尽相同小接下来,我将所有的分类用表格的方式做一个简单的介绍,让大家多了解一下PEAR套件可以提供哪些功能。
这麼多的分类,每一类都会依功能的不同发展出不同的套件。以第一个认证类为例,若您到官方网站去看,会发现目前该类中共有8个套件
这8个套件都是与身份认证有相关的套件,如果您想要网页具有身份认证功能,例如,可以让网页浏览者註册、输入帐号密码、判別身份、给予权限等等。就会需要用到这些套件。
我再补充一点:有些套件已发展成熟,开发者会将它称为稳定(stable)版,但若程式库尚在发展中,但也已经可以使用,开发者将它释出,通常会称为测试版(alpha or beta)版。官方网站也会记錄套件的开发者与维护者的姓名,有时候一个套件是由许多人共同开发而成的。
这些套件的讯息都可在PEAR的官方网站中找到,我在附錄〈PEAR官方网站的介绍〉会介绍如何使用PEAR官方网站。
2-4 使用PEAR程式库的简单范例
在这一节中,我用l个简单的范例来說明程式库的使用。
假设您想要制作一个网页,並且希望知道网页执行时所耗用的时间,则可以借用PEAR所释出的名为Benchmark的程式库。这个程式库开发出来的目的就是用来计算网页的执行时间。
首先,先将Benchmark程式库套件安装好(安装方法请参考下一章)。接著我们就可以开始撰写网页了,例如:我们建立了一个名为show.php的网页。
基於說明上的方便,我在每一行程式前面加上行号,大家实际上撰写程式时是不用加上行号的。
第1行与第2行的程式码首先引用Benchmark套件中的Timer.php网页,这个网页內含计算纲页执行时间的程式库。include_once可以将某一个外部的网页放到这个纲页来,我称这个动作叫做「引用」, 本例相当於执行了Timer.php与show.php两个网页。
第3行,用new关键字建立一个Benchmark_Timer物件,並将该物件放入名为$timer的变数中。接著使用细$timer物件的start( )方法啟动时钟,然后加上我自己的程式码,此例中是一行简单的程式。
接著就是要结束时钟的计时,计算网页执行所花费的时间並将它显示出来。第8行先用$timer物件的stop( )方法来停止时钟,並用第9行$timer物件的timeElapsed( )方法计算时钟从啟动到停止中间的时间差,並将计算结果放入$totaltime变数中。
最后用echo函式显示时间差在网页上。
由结果可清楚看到show.php网页从开始执行到执行完毕总共花了0.00013613700866699秒,以后可以借由观察这个数字来判断系统效能,或做为程式码改进的参考。如何,执行时间的计算是不是方便、快速又神奇呢!
如果您需要在其他网页上也可以有计算网页的执行时间的功能,只要用上述方式套用在其他PHP网页上就可以了。
事实上,其他套件的使用方式也跟这个套件的使用方式大同小異.差别只是在每个套件所提供的类別、方法以及使用的参数各有不同而已。
套件虽然好用,但相信读者还是有许多的疑惑? 例如:

<?php
$array = array("key1" => "Simon", 2 => "Elaine"); //数组的创建
echo $array["key1"]; //输出Simon
echo $array[2]; //输出Elaine
?>

PHP加密技术可以追溯到01年,当时PHP已经很火爆,所以许多公司希望能推出商业化的PHP系统,于是PHP加密(编译)产品应运而生,随后PHP大颚Zend公司推出了自己的Zend Encoder,直到现在,Zend的加密产品依然是这个领域的领袖。

   这些良好的编程习惯不仅能提高效率,还能让您编写出在应用程序的整个生命周期中易于维护的代码。编写出来的代码可能需要大量的维护;应用程序的维护是一笔很大的开支。养成良好的编程习惯能够提高设计质量(比如模块化),从而使代码更加容易理解,因此维护就更加容易,同时也降低维护成本。

  1. Benchmark程式库套件是怎麼来的?要有哪些前置工作才可以使用它?
  2. 我是如何知道使用Benchmark套件的方法?
    第1个问题牵涉到如何安装PEAR套件,以及安装后套件的管理、升级、刪除等问题,我会在第3章加以介绍。第2个问题,笔者会在第4章针对如何使用套件、如何得到套件的资讯等做一个详细的說明。
    2-5 为何要用PEAR
    为何要使用PEAR? 我根据自己的心得,归纳出以下几点:
    1. 省时省力:许多程式码都被撰写在程式库中,开发者只需引用含程式库的PHP档,就可以拥有程式库所提供的功能,省去自行撰写的时间与精力。
    2. 安全:由於这些程式库套件都将原始码公开,使用者若发现bug,可以立即向套件的开发者反映,开发者通常也会立即加以修正,让程式库的错误減到最小。
    3. 容易维护:自行撰写的程式码与PEAR程式库的程式码分开,若PEAR套件因为有新功能被开发或修正错误而释出新版本,只需更新套件即可,完全不会动到自行撰写的程式码。
    4. 功能強大:PEAR套件所提供的功能非常之多,除了一般常用功能如:资料库的连结、设定档的处理、身份的认证、以及表单的处理。另外,较为进阶的功能,例如像网路邮局、网路管理、动态方式產生图形、RSS、Wiki,或者像phpBB的BBCode解析等等都可简单做到。
    5. 让网页的程式开发与版面设计分开:PEAR提供许多樣板的程式库,可让程式开发与版面设计分开,方便於程式开发者与网页设计者分工合作。
    6. 对学习PHP者是一套絕佳的学习范例:程式库的註解說明十分详细,程式码的撰写,具有一定的规则与格式,而且完全物质化,让开发者容易看懂並学习。有些套件还內附教学文件与范例挡,最重要的是:你不用花半毛钱就可得到,我们应该感谢套件的作者们,他们为我们付出了无私的贡献。
    2-6 为什么要建立PEAR社团
    是什麼原因促使全世界的PHP开发者大团结,共同开发出PEAR这个程式宝库呢? 我就认为有以下几个原因:
    1.遭受其他竞爭者的強大竞爭:这一点第1章已经說明过了。
    2.PHP的物质化:从PHP4加入物质导向的功能后,PHP5更是进一步物质化。除了要与ASP.NET、JSP一拼外,就是方便於程式的模组化,让程式库的开发可以进行,有了物质化的功能,程式库才可以与开发者自行撰写的程式码切割。
    3.开发者的共同需求:如果每一次开发PHP程式,都要从无到有完全自己来,虽然可以锻鍊程式功力,但卻沒有效率,也不甚经济。若一些常用的功能可以用程式库的方式来处理,将可以解決许多开发者的困难。基於这种所有开发者都共同拥有的需求,让这些PHP的开发者分工合作,共同发展程式库,帮助自己也帮助别人。
    2-7 PHP的竞爭者与优缺点
    PHP是在1994年发展出来的,经过四次主要的改写,成为我们今天所看到的可以广泛应用且成熟的產品。到2005年四月为止,PHP已经运用於全球超过1900万个网站上,而且这个数字还在持续快速成长中。
    PHP与他们的竞爭对手相比,他具有以下优势:
    高效能:不是我黄婆卖瓜,哈哈。.., 我閱览过许多Asp.NET与Jsp的网页,效能上实在无法与PHP相比。(Asp.NET与Jsp的使用者应该不会看这篇文章吧)。
    ● 可以与许多不同的资料库系统相连结:其他的竞爭者也可以,但沒有PHP快。
    ● 易学易用:PHP的程式码的写法非常直觉,容易学习。
    ● 支援物件导向:这方面Jsp是強项,但PHP5已经追上来了。
    ● 低成本:根本不用钱。
    ● 內建非常多的函式库:记得笔者以前使用Asp,內建的函式库实在少的可怜。
    ● 开放原始码:安全性会比沒有开放的高。
    ● PEAR程式库:这是最近的強力武器,用来与強敌们一爭长短。
    ● 可攜性:无论是各类Unix作业系统,如:Linux,FreeBSD,商业版Unix或Windows作业系统都可以使用PHP。
    Asp.NET与Jsp当然也有他们独特的优点? 例如,Jsp夹带JAVA強大的功能,它就可以呈现一些目前PHP无法做到的效果。所以Jsp也吸引了许多的使用者,但笔者对Jsp目前的效能实在还不甚满意,相反地,对PHP的快速度满意的不得了。
    使用哪一种程式,就由您自行做明确的抉择,不过,若您选择观看文章,相信我们应该都是同道中人,PHP的爱好者。
    总而言之,许多PHP高手共同构筑了一个強大的支援网,若您是PHP的程式开发者,卻对这些高手的好意毫不领情,那不是太可惜了吗?

复制代码 代码如下:

PHP解密技术呢?02年初就出现了非常强的解密系统。该系统实际上是由PHP核心成员开发的,直到现在,所有的PHP解密技术都还是依靠02年由PHP核心成员发布的技术进行解密的,而且,目前还没有任何加密产品能避免被该技术破解。(考虑到庞大的PHP开发商的利益,我们在这里就不公开该技术了)

不良的编程习惯会造成代码缺陷,使其难以维护和修改,并且很可能在修改时又引入其他缺陷。以下是 5 个良好的编程习惯,能够帮助 PHP 代码避免这些缺陷:

您可能感兴趣的文章:

  • PHP 5.0 Pear安装方法
  • php 什么是PEAR?(第三篇)
  • PHP Pear 安装及使用
  • windows下安装PEAR php5.3.1下解决出错的方法
  • pear包安装phpunit的方法
  • windows下安装pear及phpunit(注意配置好php命令行环境)
  • PHP扩展模块Pecl、Pear以及Perl的区别
  • PHP使用pear实现mail发送功能 windows环境下配置pear

<?php
$array = array("key1" => array(0 => 1, 1 => 10, 2 => 100),
"key2" => array(0 => 5, 1 => 25, 2 => 125));
echo $array["key1"][0]; //输出1
echo $array["key1"][1]; //输出10
echo $array["key1"][2]; //输出100
echo $array["key2"][0]; //输出5
echo $array["key2"][1]; //输出25
echo $array["key2"][2]; //输出125
?>

值得一提的是,中国人再次在破解领域露了一脸。05年底时,国内某XX工作室对外称其可将Zend加密过的PHP代码进行还原,并提供了在线测试服务。这倒没有什么特殊之处,因为04年时国外就有数个类似的团队提供PHP破解服务了。不同是该XX工作室的作风非常硬朗,不仅通过各种渠道散布自己的广告,甚至使用虚拟的身份在Zend公司的论坛上发布广告消息,引起PHP业内一片唏嘘。

  1. 使用良好的命名。
  2. 分成更小的部分。
  3. 为代码添加注释。
  4. 处理错误条件。
  5. 切忌使用复制粘贴。

复制代码 代码如下:

近日,又在Google的Blog用户中发现某中文用户提供PHP破解服务,同样提供免费的反编译测试服务。

下一小节将详细介绍这些习惯。

<?php
$array = array("key1" => array(0 => 1, 1 => 10, 2 => 100), //定义数组
"key2" => array(0 => 5, 1 => 25, 2 => 125));
print_r($array); //输出数组
?>

我们曾先后向几个知名的,包括国外老牌的、国内的XX工作室及最近出现在Google Blog上的PHP破解团队提交了相同的编译过的代码,经过对破解后的代码的比较,我们发现所有这些破解技术基本上都是基于同样的原理,只是老牌的公司有更强的实力,破解后的代码更接近源代码,新的技术团队功力显然略逊一筹。

使用良好的命名

复制代码 代码如下:

后来我们了解到,实际上国内只有一个XX工作室提供PHP破解服务,Google Blog上的那位用户是国外某老牌PHP破解团队的中国成员,只是近日才低调出现在中文社群内的。

  使用良好的命名是最重要的编程习惯,因为描述性强的名称让代码更加容易阅读和理解。代码是否好理解取决于是否能在未来维护它。即便代码不带有注释,如果它很容易理解,将大大方便日后的更改。这个习惯的目标是让您编写的代码像书本一样容易阅读和理解。

<?php
$array = array("a", "b","c"); //定义数组
print_r($array); //输出数组
?>

同样的,我们对各个团队的破解技术和服务价格进行了比较,国内的XX工作室虽然价格遥遥领先,但其破解技术却与那些老牌的团队无法相提并论,甚至有朋友称该XX工作室要挟过他们公司:如果不交“保护费”,就要公布他们的源代码。实在让人有些啼笑皆非。OPENLINK也有大量的PHP产品,也许哪天要被该XX工作室收保护费也未可知

不良习惯:含糊的或无意义的名称

复制代码 代码如下:

实际上,OPENLINK目前已经基本上专攻解决方案了,用户可以一次性获得全部源代码,所以OPENLINK也不需要去在意破解的问题,但是对于其他兄弟企业而言,的确应该考虑一下知识产权的问题了。

  清单 1 中的代码包含过短的变量名、难以辨认的缩写词,并且方法名不能反映该方法的功能。如果方法名给人的感觉是它应该做这件事情,而实际中它却做另外的事情,这将带来严重的问题,因为它会误导人。

<?php
$array = array("a", "b","c"); //定义数组
$array[0] = "Simon"; //修改数组元素
print_r($array); //输出数组
?>

您可能感兴趣的文章:

  • PHP实现加密的几种方式介绍
  • 2个比较经典的PHP加密解密函数分享
  • PHP中加密解密函数与DES加密解密实例
  • php中AES加密解密的例子小结
  • 怎样给PHP源代码加密?PHP二进制加密与解密的解决办法
  • PHP可逆加密/解密函数分享
  • 兼容PHP和Java的des加密解密代码分享
  • php基于mcrypt的加密解密实例
  • PHP rsa加密解密使用方法
  • PHP无敌近乎加密方式!
  • php基于base64解码图片与加密图片还原实例
  • PHP实现的单向散列加密操作示例

清单 1. 不良习惯:含糊的或无意义的名称

<?php

function getNBDay($d)
{
switch($d) {
case 5:
case 6:
case 7:
return 1;
default:
return ($d   1);
}
}

$day = 5;

$nextDay = getNBDay($day);

echo ("Next day is: " . $nextDay . "n");

?>

良好习惯:说明性强并且简洁的名称

  清单 2 中的代码体现了良好的编程习惯。新的方法名具有很强的说明性,反映了方法的用途。同样,更改后的变量名也更具说明性。惟一的保持最短的变量是$i,在本清单中,它是一个循环变量。尽管很多人不赞同使用过短的名称,但在循环变量中使用还是可以接受的(甚至有好处),因为它明确表明了代码的功能。

清单 2. 良好习惯:说明性强并且简洁的名称

<?php

define ('MONDAY', 1);
define ('TUESDAY', 2);
define ('WEDNESDAY', 3);
define ('THURSDAY', 4);
define ('FRIDAY', 5);
define ('SATURDAY', 6);
define ('SUNDAY', 7);

/*
*
* @param $dayOfWeek
* @return int Day of week, with 1 being Monday and so on.
*/
function findNextBusinessDay($dayOfWeek)
{
$nextBusinessDay = $dayOfWeek;

switch($dayOfWeek) {
case FRIDAY:
case SATURDAY:
case SUNDAY:
$nextBusinessDay = MONDAY;
break;
default:
$nextBusinessDay  = 1;
break;
}

return $nextBusinessDay;
}

$day = FRIDAY;

$nextBusDay = findNextBusinessDay($day);

echo ("Next day is:" . $nextBusDay . "n");

?>

  我们鼓励您将大的条件拆分为一个方法,然后用能够描述该条件的名字命名方法。这个技巧能够提高代码的可读性,并且能够将条件具体化,使之能够被提取甚至重用。如果条件发生变化,更新方法也很容易。因为方法拥有一个有意义的名字,所以它能反映代码的用途,让代码更容易阅读。

 

分成更小的部分

  专心解决一个问题之后再继续编程,这样会让您更轻松。在解决一个紧急的问题时,如果继续编程,会使函数越来越长。从长远来说,这并不是一个问题,但您要记得回过头来将它重构为更小的部分。

  重构是个不错的主意,但您应该养成编写更短、功能更集中的代码。短的方法能够在一个窗口中一次看完,并且容易理解。如果方法过长,不能在一个窗口中一次看完,那么它就变得不容易理解,因为您不能快速地从头到尾了解它的整个思路。

本文由小鱼儿玄机30码发布于编程,转载请注明出处:5 个良好的编程习惯,目前还没有任何加密产品能

关键词: 小鱼儿玄机30码