深爱那片海 发表于 2015-2-3 23:58:05

PHP网页设计PHP 5.0 的变更与PHP 6.0 瞻望

刚开始写页面程序,调试完书中的例子。然后就可以尝试编写留言板了,     今朝,大多半PHP装置仍是利用PHP 4.x版本。实践上,PHP 5.0已出台一段工夫了,而现在PHP 5.1.1也方才刊行。假如你还没有晋级到这些新版本,那末让咱们一同看一下在新版的PHP中的变更,并在最初会商关于PHP 6所希冀的特征。

  1、PHP 5.0中的变更

  作为一个全新的版本号,在PHP 4和PHP 5之间存在很多本色性的区分。大多半的炒作次要环绕被从头改写过的新的对象模子。PHP 5版本更加完全而且运转功能更加优秀。在PHP 4中,对象其实仅是一个粗拙的数据类型,而且是值援用的。在试图坚持尽量多的向后兼容性的同时,在PHP 5中,设置zend.ze1_compatibility_mode可以答应与版本4中办法的兼容。固然,PHP 5也存在一些向后不兼容的改动,详细包含:

  ・新的保存上去的关头字大多半与对象模子相干(exception,final, php_user_filter,interface,implements,extends,public,private,protected,abstract,clone,try,catch,throw)。在PHP 4中保存的两个单词不再存在(cfunction,old_function)。

  ・假如一个对象没有任何属性,那末它不再为空(empty)。

  ・如今array_merge()函数只吸收数组。

  ・类可以在利用前声明(依附于详细情形)。

  ・get_class(),get_parent_class()和get_class_methods()如今可以前往一个巨细写敏感的了局,而之前的前往了局都是小写的。

  ・strrpos()和strripos()如今利用全部字符串。例如,var_dump(strrpos('ABCDEF','DAF'))将在PHP 4中前往int(3),而在PHP 5中前往bool(false)

  ・假如$_SERVER存在,它将用argc和argv停止填充-这就答应CLI版本老是可以存取这些数据。

  ・当传递一个有效的IP地址时,ip2long()前往FALSE而不是-1。

  ・界说在一个包含文件中的函数如今可以在任什么时候刻为主文件所挪用。假如文件两次被包含(这时候函数已被界说了),PHP 5也将收回一个致命的毛病。

  ・require_once()和include_once函数如今思索到了Windows巨细的不敏理性,而且将每次仅包含一个文件-即便该函数以分歧巨细写的文件名被挪用屡次。

  ・脱节了本来PHP 4中的正告。新的PHP 5在碰到一个有效的字符串偏移量时将抛出一个毛病。
  
  ・Tokenizer扩大不再界说闲置的T_ML_COMMENT常量。

  注重,这些看似较多的不兼容的变更其实其实不大,并且假如你想把原有代码移植到PHP 5中的话,有能够只对你的剧本作少少量的修正便可。PHP 5为做很多工作供应了更好的办法,然而假如你的目标仅是为了能使法式运转,那末你不会碰到太多的费事。在PHP 5中的别的一些变更有:

  ・在号令行CLI和CGI剧本作了少量变更,无效地进步了新的CLI位置的主要性。

  ・引入大批的新函数,个中很多是用于处置数组、字符转换和流操作的。

  ・缺省情形下,MySQL客户端库没有与PHP 5绑定到一同。而是,包含了SQLite扩大-它根基上是一微型数据库引擎,其目标是消弭任何设置和办理的需求。

  ・新加了mysqli(MySQL加强扩大)(缺省地没有包含在内),为的是充实天时用MySQL 4.1及以上版本的优势。

  想更周全地懂得从PHP 4到PHP 5的变更,你可以参考PHP网站上的官方档案。

  2、PHP 5.1.x中的变更

  在本文成文时,方才刊行PHP 5.1.1(在广为争辩的5.1.0出台后不久)。该版本在PHP邮件列表中引发一阵小的动乱。在5.1.0版本中,某些关头的变更被急忙地包含进一个随后刊行的候选版本中。一切仿佛都闹哄哄的,直到最初的刊行版才引发酣然大波。但是,这些变更在5.1.1中被复原以避免呈现pear::date抵触。

  ・现在,闪电般退场的PDO成为PHP中心的一局部。要更多地懂得与PHP相干的笼统层常识,可以参考《Database Abstraction in PHP》或PHP网站上的官方档案。

  ・PDO MySQL驱动法式如今成为存取MySQL的保举办法-在缺省情形下,其实不启用老式的mysqli和mysql扩大。

  ・PHP 5.1比5.0版本在功能上也大大改善。

  ・如前所说起的,日期/工夫撑持在5.1.0版本中被重写,而在5.1.1版中又被复原。或许今后不久还会有所变更-虽然都是经由细心企图的。

  ・在PHP 5.0到PHP 5.0.4版本阶段,是撑持笼统的公有办法的。但是,如今它们都被作废了。

  ・如今,不答应反复声明一个类常量。上面代码在5.1中不会任务并将抛出一个E_ERROR毛病。

<?php
 class anything {
  const const_name = 'value';
  const const_name = 'value2';
 }
?>

  ・14个更旧的扩大被从PHP中心删除。这些包含 ext/cpdf,ext/dbx,ext/dio,ext/fam,ext/ingres_ii,ext/ircg,ext/mcve,ext/mnogosearch,ext/oracle,ext/ovrimos,ext/pfpro,ext/w32api,ext/yp,sapi/activescript。一切这些还可用于PECL中,虽然并非一切这些扩大都能失掉积极保护。

  ・在参考援用的办理上也有所变更。之前咱们可以以参考援用体例发送、赋值或前往变量-其实它们应当以值的模式前往。这些包含常数、本身以值模式前往的函数或一个表达式的了局。这里有一个例子:

<?php
$var1 = "value";
function return_val() {
 global $var_name;
 return $var_name;
}
$var2 = &return_val();
?>

  这段代码曩昔是可以任务的(直到5.0.4版本),然而如今在5.1版本中会抛出一个E_STRICT异常。

  或许5.1.x不久也会登场,然而个中引入了很多有价值的改善-PDO的引入多是最值得称道的。要具体懂得PHP文档中的更改日记,可以看一下这里有关PHP 5.1(和早些版本)变更的详实列表。
  3、PHP 6.0中要作的改动

  PHP 6.0估量会是一个相当冲动人心的刊行。但是,甚么器材都是一分为二的。不外,看起来最令我气末路的三个家伙(register_globals,magic_quotes_gpc和safe_mode)能够要退位了。第一个存在一个很大的平安破绽;第二个因为操作大批数据所以在改动情况时几乎就是一场梦魇;而第三个是一个无人能了解的毛病的称号而且会给人带来一种平安方面的错觉。在Unicode成绩上,还有大批的任务要做。上面是估计的一些新变更:

  ・register_globals,safe_mode和各类魔术援用选项将被删除。
 
  ・ereg扩大将被删除,而XMLReader,XMLWriter和Fileinfo扩大将被添加到内核上而且在缺省情形下为on形态。
 
  ・我发明的别的一处使人冲动的新变更是,APC(Alternative PHP Cache)将被添加到内核上,虽然在缺省情形下为off形态。APC可觉得开辟者供应严谨的功能好处。

  ・一切的E_STRICT动静将被兼并进E_ALL-这又是针对优秀编程理论所作出的一个积极更改。

  ・不再撑持ASP作风的标签<%。

  ・引入了新的64位整型数。以后的整数类型被保存上去-至因而32仍是64位将依附平台而定。

  ・可以联合多维数组利用foreach,例如foreach($array as $k => list($a, $b))。

  ・在php.ini新引入的一个开关将答应你制止Unicode语义(缺省地,它们被置为on形态)。

  ・还有各类针对Unicode的字符串操作上的改善。
 
  ・microtime()函数将前往完全的浮点数,而不是象今朝的微秒值unix_timestamp。如许更能够有益于大多半人的利用。

  ・不再撑持用于字符串索引的{}正文,而[]版本将被添加到substr()和array_slice()功效中。之前的[]为很多人所品评,然而大多半的开辟者,包含我在内,都一向利用[]。

  ・在针对CGI SAPI情况时,将一向启用FastCGI,而且不会被制止。

  ・不再撑持陈旧的HTTP_*_VARS全局变量。

  ・var将有一个新的别号public。在PHP4 类中Var是被答应的,然而在PHP 5中,这将会激发一个正告。在PHP 6中,var将仅是public的一一般名,因而将不会再呈现正告。

  ・ze1兼容性形式将被删除-这一体例本来试图保存PHP 4的行动然而却存在一些毛病。

  ・不再答应用静态语法来挪用静态函数。

  别的,还存在很多要决意的成绩,例如定名空间能够更加主要,然而今朝根基上还没有失掉赞同。你可以读一下比来的PHP开辟者会议上关于PHP 6的具体会商。虽然PHP 6还没有出台,然而我信任在其终究刊行之前必定存在很多周折。虽然如斯,PHP所做出的奉献已失掉业界的充实承认,其出路是一片光亮的。
exit来实现结束后面的PHP语句的执行,缩小调试范围,特别是数据库交互的程序,先输出个SQL语句看看,对了,再分析怎么会插入/删除不成功呢?这样对查错很有帮助。

第二个灵魂 发表于 2015-2-4 06:01:24

其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎

金色的骷髅 发表于 2015-2-9 02:37:34

不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。

莫相离 发表于 2015-2-11 10:53:20

本文当是我的笔记啦,遇到的问题随时填充

仓酷云 发表于 2015-3-2 11:12:10

写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。

精灵巫婆 发表于 2015-3-16 03:23:27

我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。

乐观 发表于 2015-3-22 19:10:41

建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。

不帅 发表于 2015-4-1 13:12:56

有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。

谁可相欹 发表于 2015-4-28 08:58:29

实践是检验自己会不会的真理。

飘飘悠悠 发表于 2015-5-9 07:46:55

首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。

山那边是海 发表于 2015-6-15 00:35:08

我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。

活着的死人 发表于 2015-6-30 22:11:37

当然这种网站的会员费就几十块钱。

小女巫 发表于 2015-7-7 10:02:09

在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。

透明 发表于 2015-7-12 14:37:31

当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,

再见西城 发表于 2015-7-13 05:05:01

做为1门年轻的语言,php一直很努力。

愤怒的大鸟 发表于 2015-7-21 08:41:06

Ps:以上纯属原创,如有雷同,纯属巧合

深爱那片海 发表于 2015-7-22 01:42:32

基础有没有对学习php没有太大区别,关键是兴趣。

小魔女 发表于 2015-7-23 22:44:02

我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。

因胸联盟 发表于 2015-7-28 22:29:52

首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
页: [1]
查看完整版本: PHP网页设计PHP 5.0 的变更与PHP 6.0 瞻望