PHP是一种高效的网络编程言语。由于其编写灵敏、运转迅速,迅速成为Web程序员的首选言语。那么成为一名低劣的PHP开发人员须要具有哪些条件呢?
成为PHP编程高手并不容易。并不是很多人构想的那样。只需你能极速写出几句繁难的代码来处置一个复杂的疑问,你就是PHP编程高手。一个真正的PHP高手须要思考更多的其余疑问。以下三个准绳是一个成熟的PHP程序员在编程时应该首先遵照的准绳。(北京网出品)
懈怠是金
编写美丽的代码
谋求程序的速度,而不是编程的速度
懈怠是金
做一个懈怠的程序员?这个想法太奇异了!由于环球上最忙的人或者是计算机程序员。但也正是由于程序员太忙了,所以在编程的时刻更应该学会偷懒。关于一个程序员来说,偷懒有两种形式:
第一,大胆经常使用他人现成的程序代码,将这些代码集成到自己的程序或名目中。二是写一些有用的代码建一个函数库,以后写程序的时刻可以繁难的经常使用,省去很多重复休息,人造也可以偷懒。这两种偷懒的方法十分适宜PHP程序员。
首先,PHP是一门在自在放开的环境中降生和生长的言语。谢环球各地,有不可胜数的程序员在不时地谋求PHP的完美,他们情愿与他人分享他们的痴呆才智和他们编写的代码。你每天都可以从一些PHP网站、邮件列表和资讯组中找到很多低劣的程序代码。
这样,我不是激励你终日等着他人给你写代码,而是你可以站在巨人的肩膀上,充散发扬拿来主义,智能运行他人的程序代码可以节俭你很多期间。其次,在PHP中,你可以很繁难的树立自己的函数库,可认为你以后写程序省去很多费事。
上方,笔者就为大家引见几个罕用的配置。这些配置有的来自互联网上的一些开源名目,有的是从邮件列表中筛选出来的。假设你能将它们参与到你自己的图书馆,迟早你会发现自己收获颇丰。
1.通用数据库处置函数
与其余CGI函数相比,PHP的优势之一是它具有十分弱小的数据库处置才干。然而在PHP中,是用一些特定的函数来处置不同的数据库,不足通用的数据库处置函数。这大大降落了程序代码的可移植性,也给初学编程的好友们带来了很多不便。
在网上,很多程序员经过封装类的形式处置了这个疑问。他们写了一个一致的函数来处置任何盛行的数据库——,无论是在Linux环球十分盛行的Mysql,还是在Windows平台上宽泛盛行的SqlServer。(上流网站树立)
我团体是很青睐用这些函数的,由于我可以间接经常使用一些繁难的函数比如query和next_record而不用思考数据库衔接和数据库句柄等复杂的物品,更不用思考你用的是什么数据库了.假设您须要这些配置,可以访问以下网址失掉:
http://phplib.netuse.de/
http://phpclasses.UpperDesign.com/browse.html/package/20
http://phpdb.linuxbox.com/2.变量调试函数
PHP程序的调试不时是个让人头疼的疑问。它既没有像VB等初级言语那样的集成编译调试环境,也不能像Perl那样在Linux或DOS下间接运转。其实咱们可以灵敏的经常使用echo语句来成功PHP的调试。上方的函数可以让你随时检查程序中恣意变量的类型和值。
functions_array_as_string(&$array,$column=0){
$str='数组(n';
须要的时刻,在程序中繁难地参与上方的一条代码即可检查程序中的所经常使用的变量(包括数组和对象)的类型和值:
经常使用上方的语句,咱们可以间接检查程序中一切的变量的值:
);3.控制Log消息的函数
调试PHP程序的另外一种关键的方法就是检查Log消息。假设能够繁难地控制Log消息的级别以及Log消息的显示内容,将会给程序调试带来更多的便利。上方的几个函数可以繁难地成功这个配置。
在上方的函数中,有四个Log级别变量。运转PHP程序时,只要当Log的级别低于预设的级别值时,Log消息才可以被记载和显示出来。例如,在程序中参与如下的一条语句:
那么,运转PHP程序时,只要ERROR和INFO级别的LOG消息才干被记载和显示出来,DEBUG级的消息则被疏忽了。除此之外,咱们还可以设定显示的消息内容,其语句如下:
);ss_log(INFO);ss_log(DEBUG
你也可以随时经常使用上方的语句清空LOG消息:4.速度测试函数
为了提升代码,咱们须要一种可以测试代码运转期间的方法,从而来选用最优的代码。上方的函数可以测试运转代码所需的期间:
如今可以轻松地审核任何一段代码的口头期间了,甚至咱们可以同时经常使用多个计时器,只需在经常使用上述的几个函数时设定不同的参数作为计时器的称号就可以了。5.调试和提升数据库的操作
关于数据库来说,运转速度是至关关键的。虽然很多书籍和文章都讲授了一些极速运转数据库的方法,然而一切的方法都必定经过通常的测验。上方咱们将把PHPLib函数库中的query()函数和上方引见的几个函数综合起来编写成新的query()函数,和原先的函数相比,这个函数参与了运转期间的监测配置。
1.将后盾程序与前端程序离开在编写PHP程序时,有些代码是用来处置一些事务,例如操作数据库、启动数学运算等,而另外的一些代码则只是事务处置的结果显示出来,例如一些经常使用echo语句将结果以HTML的格局显示在Web阅读器上的PHP代码以及那些间接嵌入PHP程序的HTML代码。首先咱们应该明晰地域分这两种代码,把前者称为后盾程序,把后者称为前端程序。
由于PHP是一种嵌入式编程言语,也就是说,一切的PHP代码都可以嵌入到HTML代码之中,这为程序的编写带来了许多便利之处。然而,物极必反,假设在一段较长的程序中将PHP代码和HTML代码混合编写,这将使程序横七竖八,不利于程序的保养和阅读。
所以咱们须要尽或者地将这些程序中混同于HTML代码中的PHP代码移植出来,在专门的文件中将这些代码封装成函数,而后在HTML代码中经常使用include语句来蕴含这些文件,在适当的位置调用这些函数即可。
这种做法一方面使HTML代码和PHP代码都繁难易读,另一方面由于HTML代码须要不时更新,而这种分别的方法可以确保后盾程序不会被破坏。同前端程序不同,后盾程序更多谋求的是稳固、结构化,极少更改,所以应该仔细地设计和治理。其实,在设计台程序时,投入少量期间是值得的,如今栽树,以后纳凉,在以后的设计上班中将可以轻松地经常使用如今编写的后盾程序。
2.灵敏经常使用蕴含文件
正如前面所说的那样后盾程序应当布置在一系列的蕴含文件中。蕴含文件可以经过include语句在须要时灵活装入,也可以在php.ini文件中经过经常使用auto_prepend_file指令预先智能装入。假设经常使用后一种方法的话,虽然取得了与日俱增的好处,然而也有一些缺陷值得咱们留意。上方的一段代码向咱们展现了解析一个宏大的蕴含文件须要必定的期间:
require(timing.inc);
ss_timing_start();
include(test.inc);
ss_timing_stop();
.ss_timing_current().
在上方的代码中,test.inc是一个1000行的蕴含文件,运转的结果显示,解析这个蕴含文件破费了0.6秒钟,关于一个大型网站来说,这个速度并不是可以疏忽不记的。经常使用蕴含文件的另外一个缺陷是:假设一个文件中的一个语句出现失误,将会使整个网站的PHP程序都不可运转。所以经常使用起来也及其小心。其实,对蕴含文件稍做处置,即可以使蕴含文件只在须要时启动解析。上方的代码使abc.inc文件只在程序须要时才作解析:
if(defined(__LIBA_INC))return;
define(__LIBA_INC,1);
/**代码...*/
3.经常使用面向对象的编程方法
PHP也是一种面向对象的言语,面向对象的编程方法是低劣的程序员们十分推崇的一种软件设计方法,在PHP编程中可以充散施展面向对象言语的优势,对编程中的对象启动封装。在前面的代码中,咱们经常使用了面向对象的方法,例如在治理数据库时,咱们将query()函数封装进数据库类中,这极大地便捷了代码的治理,参与了程序的可读性。
谋求程序速度,而不是编程的速度在网站树立中,程序运转速度和网页下载速度都是相关成败的关键起因。作为一名Web程序员,应该愈加留意代码的运转速度。上方引见的几种方法都在不同水平上提高了代码的运转速度。
1.经常使用内嵌的HTML代码,而不是PHP的echo语句。
由于PHP是一门嵌入式Web编程言语,可以将HTML代码和PHP代码相互嵌入。然而很多程序员担忧在HTML代码中过多的经常使用""嵌入PHP代码会屡次调用PHP解释器,从而降落了PHP代码的运转速度,所以宁愿经常使用PHP的echo语句来输入HTML代码,而不间接经常使用HTML代码。
但理想却恰好相反。每一个PHP页面只调用一次性PHP解释器来解释一切的PHP代码,所以,只在须要时才嵌入PHP代码,而大少数的时刻间接经常使用HTML代码输入结果,岂但不会降落程序的运转速度,而且由于缩小了对echo语句的解析,往往可以提高代码的运转速度。上方的一段代码证实了咱们的论断。在这段代码中,咱们经常使用了前面引见的期间测试函数。
2.经常使用str-replace而不是ereg-replace
习气经常使用Perl启动编程的程序员愈加情愿经常使用ereg_replace成功字符串交流上班,由于在PHP中ereg_replace的用法和Perl中形式婚配的用法相近。然而,上方的这段代码证实,经常使用str_replace替代ereg_replace将可以大大提高代码的运转速度。测试str_replace和ereg_replace的运转速度:
//这段代码测试str_replace的运转速度emphasis;?>
for($i=0;$i<1000;$i++){
str_replace(i>,b>,$string).
//这段代码测试ereg_replace的运转速度
for($i=0;$i<1000;$i++){
ereg_replace(<([/]*)i>,<\1b>,$string).
3.留意字符串的援用
PHP和其它很多编程言语一样,可以经常使用双引号("")来援用字符串,也可以经常使用单引号()。然而在PHP中,假设经常使用双引号来援用字符串,那么PHP解析器将首先剖析字符串中有没有对变量的援用,有变量的话,将对变量启动交流。假设是单引号,则没有如此复杂——间接将单引号蕴含起来的一切字符串间接显示出来。显然,在PHP编程中,假设经常使用单引号援用字符串变量要比经常使用双引号极速一些。
4.在数据库中防止经常使用联结操作
比起其它的Web编程言语来说,PHP的数据库配置十分弱小。然而在PHP中数据库的运转依然是一件十分费时费劲的事件,所以,作为一个Web程序员,要尽量缩小数据库的查问操作,同时应该为数据库树立适当的索引。
另一件值得留意的事件是在用PHP操作数据库时,尽或者不经常使用多个数据表的联结操作,虽然联结操作可以增强数据库的查问配置,然而却大大参与了主机的累赘。为了说明这个疑问,咱们可以看看上方的这个繁难的例子。
咱们在数据库中创立了两个数据表foo和big_foo。在数据表foo中,只要一个字段,蕴含了从1-1000之间的一切人造数。数据表big_foo雷同只要一个字段,但蕴含了从1-1,000,000之间的所有人造数。所以,从大小上说,big_foo等于foo与它自身启动了联结操作。
$db->query("select*fromfoo");
0.032273secs
$db->next_record();
0.00048999999999999secs
$db->query("insertintofoovalues(NULL)");
0.019506secs
$db->query("select*fromfooasa,fooasb");
17.280596secs
$db->query("select*fromfooasa,fooasbwherea.id>b.id");
14.645251secs
$db->query("select*fromfooasa,fooasbwherea.id=b.id");
0.041269secs
$db->query("select*frombig_foo");
25.393672secs
从上方操作结果咱们可以发现,关于两个有1000条记载的数据表启动联结,其速度并不比对一个1000000条纪录的大型数据表独自启动操作快多少。
5.留意include与require的区别
在PHP变成中,include()与require()的配置相反,但在用法上却有一些不同,include()是有条件蕴含函数,而require()则是无条件蕴含函数。例如在上方的一个例子中,假设变量$somgthing为真,则将蕴含文件somefile:
if($something){
include("somefile");
但不论$something取何值,上方的代码将把文件somefile蕴含进文件里:
if($something){
require("somefile");
上方的这个幽默的例子充沛说明了这两个函数之间的不同。
while($i<3){
require("somefile.$i");
在这段代码中,每一次性循环的时刻,程序都将把同一个文件蕴含出来。很显然这不是程序员的初衷,从代码中咱们可以看出这段代码宿愿在每次循环时,将不同的文件蕴含出去。假设要成功这个配置,必定求助函数include();
while($i<3){
include("somefile.$i");
6.留意echo和print的区别
PHP中echo和print的配置也基本相反,然而两者之间也有纤细差异。在PHP代码中可以把print作为一个个别函数来经常使用,例如口头上方的代码后变量$res的值将为1。
$ret=print"HelloWorld";
这象征着print可用在一些复杂的表白式中,而echo则不行。雷同,在代码中echo语句的运转速度要稍微快于print语句,由于echo语句不要求前往任何数值。
咱们专一上流建站,小程序开发、软件系统定制开发、BUG修复、物联网开发、各类API接口对接开发等。十余年开发阅历,每一个名目承诺做到满意为止,多一次性对比,必定让您多一份收获!
标签: 教你如何成为PHP高手、本文地址: https://yihaiquanyi.com/article/2320bfad733cd36b660a.html
上一篇:2011年属什么生肖2011年网页设计师需要更加...