PHP网页编程之php版本汗青
培训的第一阶段,学习的是HTML/CSS/JavaScript基础。php最后就是为了疾速构建一个web页面而敏捷被人人广为承受的。它的优点是在代码中能内嵌html的代码,从而让程序员能再一个页面中同时写html代码和php代码就可以天生一个web页面。这篇文章用工夫轴的角度来纪录一下php的汗青。PHP版本汗青1995岁首PHP1.0出生RasmusLerdof创造了PHP,这是复杂的一套Perl剧本,用来跟踪会见者的信息。这个时分的PHP只是一个小工具罢了,它的名字叫做“PersonalHomePageTool”(团体主页小工具)。1995年6月PHP2.0出生RasmusLerdof用C言语来从头开辟这个工具,代替了最后的Perl程序。这个新的用C写的工具最年夜的特征就是能够会见数据库,可让用户复杂地开辟静态Web程序了。这个用C写的工具又称为PHP/FI。它已有了明天php的一些基础功效了。自Rasmus在1995年6月将PHP/FI公布源码以后,到1997年,全球约莫有几千个用户(估量)和约莫50000个域名安装。1998年6月PHP3.0出生固然说98年6月才正式公布php3.0,可是在正式公布之前,已经由了9个月的公然测试了。AndiGutmans和ZeevSuraski到场了PHP开辟项目组。这是两个以色列工程师,他们在利用PHP/FI的时分发明了PHP的一些弱点,然后决意重写PHP的剖析器。注重,在这个时分,PHP就不再称为PersonalHomePage了。而改称为PHP:HypertextPreprocessor。PHP3是最像如今利用的php的第一个版本,这个重写的注释器也是厥后Zend的雏形。PHP3.0的最壮大的功效就是它的可扩大性。它供应给第三方开辟者数据库,协定,和API的基本布局以外,还吸引了大批的开辟职员到场并提交新的模块。2000年5月PHP4.0公布AndiGutmans和ZeevSuranski在4.0做的最年夜的举措就是重写了PHP的代码,创造了Zend引擎来加强程序运转时的功能和PHP的模块性。这个Zend实践上就是Andi和Zeev名字缩写的合称。利用了Zend引擎,PHP取得了更高的功能以外,也有其他一些关头的功效,包含撑持更多的web服务器;HTTPSession的撑持;输入缓冲等。2004年7月PHP5.0公布PHP5.0的中心是Zend引擎2代。它引进了新的工具模子和大批的新功效。好比引进了PDO(PHPDataObject)如今(2014年2月)最新的PHP已公布到5.6了,听说PHP6.0已在开辟过程当中了。一切php的汗青代码能够在PHP博物馆找到。php比来几个版本的功效形貌php4.0以Zend引擎作为剖析器php4.1到场超全局变量功效,包含$GET,$POST,$_SESSION等php4.2从收集吸收的数据将不会设置玉成局变量,增添程序的平安性。php4.3到场命令档,成为CLIphp4.4到场phpize和php-config的man页面php5.0利用了Zend2引擎。增添了新关头字,包含this,try,catch,public,private,protected等strrpos()和strripos()现在利用全部字符串作为needle。不法利用字符串偏移量会招致EERROR而不是EWARNING。一个不法利用的例子:str=′abc′;unset(str);.arraymerge()被改成只承受数组。假如传送进非数组变量,对每一个此类参数城市收回一条EWARNING信息。要当心由于你的代码有大概猖狂收回E_WARNING。假如variablesorder包含“S”,$SERVER应当带有argc和argv被发生。假如用户出格配制体系不创立$SERVER,那此变量固然就不存在了。改动的中央是不论variablesorder怎样设定,在CLI版本中argc和argv老是可用的。原本CLI版不是总会发生全局变量argc和argv的。没有属性的工具不再被当做“empty”。getclass(),getparentclass()和getclass_methods()现在前往的类/办法名和界说时的名字分歧(辨别巨细写),关于依附之前举动(类/办法名老是前往小写的)的老剧本大概发生成绩。一个大概的办理办法是在剧本中搜刮一切这些函数并利用strtolower()。辨别巨细写的改动也合用于把戏常量CLASS,METHOD和FUNCTION。其值城市严厉依照界说时的名字前往(辨别巨细写)。ip2long()在传送进一个不法IP作为参数时前往FALSE,不再是-1。假如有函数界说在包括文件中,则这些函数能够在主文件中利用而与是不是在return指令之前仍是以后有关。假如文件被包括两次,PHP5会收回致命毛病,由于函数已被界说,而PHP4不论这个。因而保举利用include_once而不要往反省文件是不是已被包括和在包括文件中有前提前往。includeonce和requireonce在Windows下先将路径规格化,因而包括A.php和a.php只会把文件包括一次。更多参考材料php5的新特征php5.1重写了数据处置部分的代码PDO扩大默许启动功能优化凌驾30个新函数凌驾400个bug修复php5.2CLISAPI不再从php.ini和php-cli.ini中猎取以后目次信息。这是从平安角度思索的。对0取模的时分会提醒Warning信息。工具能够经由过程__toString()函数被当作字符串挪用。克制设置笼统类的静态办法增添RFC(data:stream)的撑持。更多参考材料从5.1迁徙到5.2php5.3修改:realpath()如今是完整与平台有关的.了局长短法的绝对路径好比FILE."/../x"将不会事情.calluserfunc()系列函数即便被挪用者是一个父类也利用$this.数组函数natsort(),natcasesort(),usort(),uasort(),uksort(),arrayflip(),和arrayunique()将不再承受工具作为参数.在将这些函数使用于工具时,请起首将工具转换为数组.按援用传送参数的函数在被按值传送挪用时举动产生改动.此前函数将承受按值传送的参数,如今将抛出致命毛病.之后任何等候传送援用可是在挪用时传送了常量大概字面值的函数,必要在挪用前改成将该值赋给一个变量。__toString把戏办法不再承受参数.把戏办法_get,_set,_isset,_unset,and__call应当老是大众的(public)且不克不及是静态的(static).办法署名是必需的.如今__call把戏办法在会见公有的(private)和被回护的(protected)办法时被挪用.函数内include大概require一个文件时,文件内将不克不及利用funcgetarg(),funcgetargs()和funcnumargs()函数。goto,namespace关头词被保存。新功效:增加了定名空间的撑持.增加了静态晚绑定撑持.增添了goto撑持。增添了闭包撑持。新增了两个把戏办法,_callStatic和_invoke.增加了Nowdoc语法撑持,相似于Heredoc语法,可是包括单引号.就是<<EOF如许的语法。可以使用双引号声明Heredoc,增补了Nowdoc语法.可在类内部利用const关头词声明常量.三元运算操纵符有了简写情势:?:.HTTP流包裹器将从200到399全体的形态码都视为乐成。同意静态会见静态办法。非常能够被内嵌新增了轮回援用的渣滓接纳器而且默许是开启的.mail()如今撑持邮件发送日记.(注重:仅撑持经由过程该函数发送的邮件.)更多参考材料从5.2迁徙到5.3php5.4修改:不再撑持平安形式。任何依附平安形式的使用在平安方面都必要举行调剂。移除把戏引号。为制止呈现平安成绩,依附此特征的使用大概必要晋级。getmagicquotesgpc()和getmagicquotesruntime()如今老是前往FALSE。挪用setmagicquotesruntime()将发生一个ECORE_ERROR级其余毛病。registerglobals和registerlong_arraysphp.ini指令被移除。挪用时的援用传送被移除。就是不克不及有f(&$a)如许的情势。break和continue语句不再承受可变参数(好比:break1+foo()*$bar;)。像相似break2;如许的流动参数仍可以使用。受此变更影响,不再同意呈现break0;和continue0;。在日期与工夫扩大中,不再撑持时区利用TZ(TimeZone)情况变量设置。必需利用date.timezonephp.ini设置选项或datedefaulttimezoneset()函数来指准时区。PHP将不再实验推测时区,而是回退到“UTC”并收回一条EWARNING毛病。非数字的字符串偏移量,好比a[′foo′]此处a是一个字符串,如今利用isset()时前往false,利用empty()时前往true,并发生一条EWARNING毛病。偏移量范例是布尔和null则发生一条ENOTICE毛病。数字字符串(好比$a)仍像之前一样运转。注重像相似12.3和5foobar如许的偏移量将被视为非数字并发生一条EWARNING毛病,但由于向后兼容的缘故原由它们会被分离转换成12和5。注重:以下代码前往分歧的了局。$str=abc;vardump(isset($str));//在PHP5.4或更新版本前往false,但在PHP5.3或更低版本前往true数组转换成字符串将发生一条E_NOTICE级其余毛病,但前往的了局还是字符串"Array"。NULL、FALSE、或一个空字符串被增加成一个工具的属性时将收回一条EWARNING级其余毛病,而不是ESTRICT。如今参数名利用全局变量将会招致一个致命毛病。克制相似functionfoo($GET,$POST){}如许的代码。Salsa10和Salsa20哈希算法被移除。当利用两个空数组作为参数时,array_combine()如今前往array()而不是FALSE。htmlentities()将像htmlspecialchars()一样处置亚洲字符集,这是之前PHP版本的处置情形,但如今将会收回一条E_STRICT毛病。激烈倡议不要再利用eregi(),此特征在最新版本中被移除。trait,callable,insteadof关头词被保存。新特征:新增撑持traits。新增短数组语法,好比a=;或a=;。新增撑持对函数前往数组的成员会见剖析,比方foo()。如今闭包撑持$this。如今不论是否设置shortopentagphp.ini选项,新增在实例化时会见类成员,比方:(newFoo)->bar()。如今撑持Class::{expr}()语法。新增二进制间接量,比方:0b001001101改善剖析毛病信息和不兼容参数的告诫。SESSION扩大如今能追踪文件的上传进度。内置用于开辟的CLI形式的webserver。更多参考材料从5.3迁徙到5.4php5.5修改:已保持对WindowsXP和2003的撑持。构建Windows版本的PHP必要WindowsVista或更新的体系。pack()和unpack()函数的变更移除PHPlogoGUIDs新特征:新增Generators,包含yield关头字新增finally关头字foreach如今撑持list()empty()如今撑持传进一个恣意表达式,而不但是一个变量。非变量array和string也能撑持下标猎取了类名经由过程::class能够猎取增添了opcache扩大从刚开始练习的PHP基础语法练习,到PHP语言在WEB中的应用,再到实际的项目开发,如留言版,相册系统,中小型公司网站系统,以及期间做过的有关团队合作的小游戏,让我受益匪浅,学到了很多。 做为1门年轻的语言,php一直很努力。 其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。 因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax Ps:以上纯属原创,如有雷同,纯属巧合 最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。 写的比较杂,因为我也是个新手,不当至于大家多多指正。 小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。 php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
页:
[1]