php有5.5版本吗_PHP5.3、5.4、5.5、5.6各版本重要更新简述

今天无事,偶尔看到phpstorm中的版本选择处有关于各版本的区别的简短描述,于是总结一下。

c9493ebf6716f2d786ff02990f5f3dbc.png

PHP5.3相对于之前版本,最大区别也就是命名空间和匿名函数了,这在平时开发和各大框架中都用的比较多了,就不再详述了。

PHP5.4的主要更新是数组简写语法格式和traits了。

关于数组简写,说起来也挺简单,只是为数组添加了一个新的声明方法,如下:

// PHP5.4之前

$array = array(

"foo" => "bar",

"bar" => "foo",

);

// 自 PHP 5.4 起

$array = [

"foo" => "bar",

"bar" => "foo",

];

而关于PHP5.4的traits就比较少见了,代码说明:

class Base {

public function sayHello() {

echo 'Hello ';

}

}

trait SayWorld {

public function sayHello() {

parent::sayHello();

echo 'World!';

}

}

class MyHelloWorld extends Base {

use SayWorld;

}

$o = new MyHelloWorld();

$o->sayHello();

说明一下:结果是'Hello World!',从基类继承的方法会被trait中的同名方法覆盖,当前类中的方法覆盖trait中的同名成员;如果trait中定义了属性,则当前类中不能定义同名属性;trait中也可以定义抽象方法和静态成员。可以使用多个trait,它们之间用逗号分隔,如下:

use SayHello1,SayHello2;

如果SayHello1和SayHello2中有同名成员,会产生致命错误,解决方法如下:

use SayHello1,SayHello2 {

SayHello1::sayHello insteadof SayHello2; // 意思是用SayHello1中的sayHello方法代替SayHello2中的同名方法,注:此处的sayHello不一定是静态方法

// ...

// 或

SayHello1::sayHello as sayHello1; // 为其另取一个名字,也可解决

}

PHP5.5中的变化主要是异常处理中添加finally关键字和生成器generator。

关于finally,代码说明:

try {

throw new ErrorException('Some Error Message');

} catch (ErrorException $e) {

echo $e->getMessage()."111 \n";

} catch(Exception $e) {

echo $e->getMessage()."222 \n";

} finally {

echo 'finally';

}

不管产没产生异常,都会输出finally。

关于生成器generator,我看了看手册,不明觉厉。明白了再加上...

今天先到这儿......

关于generator,今天看到一篇文章(http://laravelacademy.org/post/4317.html),有些小体会,写下来做个记录,定义啥的就不说了,简单说就是为了节约内存

首先,创建生成器,类似函数,但不返回值,只生成值,有点儿别扭

function getGenerator() {

yield 'I';

yield 'am';

yield 'Polly';

}

使用生成器,生成器的返回值是一个Generator对象

foreach (getGenerator() as $val) {

echo $val . PHP_EOL;

}

看到这里,有人会认为,这和tm函数有毛区别,函数返回一个数组不照样循环出来么,看下面的例子:

function makeRange1($length) {

$dataSet = [];

for ($i=0; $i

$dataSet[] = $i;

}

return $dataSet;

}

function makeRange2($length) {

for ($i=0; $i

yield $i;

}

}

// 分别执行makeRange1(1000000)和makeRange2(1000000),便会看出来,第一个直接报错,因为内存占用过多,第二个则不会

用处,如果要读取一个超大的文本文件,肯定是用生成器来的更快更节约内存一些

function getRows($file) {

$handle = fopen($file, 'rb');

if ($handle == FALSE) {

throw new Exception();

}

while (feof($handle) === FALSE) {

yield fgetcsv($handle);

}

fclose($handle);

}

foreach ($getRows($file) as $row) {

print_r($row);

}

ok

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
php 是一种服务器端的,嵌入html的脚本语言。php区别其他像客户端java的地方是它的代码在服务器端执行.php能做什么? 最低水平,php可以做任何其他cgi程序所能做的事,例如收集表格数据,生成动态页面内容,或者收发cookies.可能最强大,最有意义的特性是php支持大范围的数据库.书写一个支持数据库的web 页面是难以置信的简单. 下面是当前支持的数据库: adabas d interbase solid dbase msql sybase empress mysql velocis filepro oracle unix dbm informix postgresql php通过协议也支持与其他服务的"交谈",像imap, snmp, nntp, pop3, 甚至是 http. 你也可以打开晦涩的 网络接口和其他协议交互. php的简要历史 1994年秋季, rasmus lerdorf 开始构思 php. 早期的非发行版本被用在他的主页上,以追踪谁在看他的在线简历. 1995年年初第一版本出台,当时php只被认为是个人主页开发工具.它由一个非常单纯的只能理解很少数特殊宏的分析引擎和 一些用在主页后端通用的工具组成.如留言簿,计数器和其他一些东西.这个分析器在1995年年中被重写并被命名为 php/fi 第二版. fi来自 rasmus 写的另外一个包, 用于解释 html 形式的数据.他结合了个人主页工具脚本和形式解析器,并加 上msql支持.这样就产生 php/fi 了. php/fi以令人惊奇的步调成长,人们开始把自己的代码贡献给它. 很难给出它的硬统计表,但可以估计在1996年末,整个世界至少有15,000个网站在用php/fi.到1997年年中,这个 数字已经超过50,000了. 而在此时php的发展也发生了变化.由rasmus自己偏爱的和几个人开发的项目变成一个更有组织的团 体成就.ev suraski和andi gutmans重写了解析器.这个新的解析器成为php版本3的基础.许多有用的代码从php/fi 继承到php3,并且很多是完全重写的. 今天(1999年年中)不管是php/fi或php3与很多商业产品捆绑在一块,例如c2级强度的web服务器和红帽子linux. 根据netcraft提供的数据推断,保守估计全世界应用php的网站已超过150,000个.由此看来,它比在因特网上运行netscape 的旗舰企业服务器的站点还多. 1.php是网页文件.需要有支持php的web服务器,才能通过浏览器打开.如果你实在要打开,用记事本也可以打开,不过里面是些网页代码.你不一定读得懂 . 2.你所下载的只不过是一个指向(或包含)那个手机铃声的网页,你要真正得到那个铃声的地址才能下载它 . 3.应该不是php,是pdf,你把后缀改一下,php文件是网页格式,用文本编辑器打开,但是本站提供的大部分是pdf格式的,安装一个pdf阅读器就能正常打开了. 4.“把扩展名改成 html ,然后用IE打开。” 5.如果安装了dreamwaver,php文件会显示dreamwaver可以打开的样式 不过用不着 到你下载过的贴子里,看你下载的那个东西的扩展名是什么,比如word文档后面就是.doc, pdf文档后面就是.pdf, 压缩文档后面就是.rar或 .zip之类的 然后把扩展名替换.php就能开了 我以前好像遇到过这种问题,好像是用下载工具下载的时候有些不默认修改回原来的扩展名吧。 一般论坛里的东西都不是很大,直接点击保存就行了,就不会遇到这种情况了 6.记事本就可以了~~~~~~~~~~ 你要用Word、Fontpage也可以~ 反正都是PHP脚本语言~ 7.PHP文件是动态网页文件,它的运行需要ISS服务的支持,如果你想在IE浏览器中打开的话,必须安装ISS服务,否则无法运行。 ISS服务是INTERNET信息服务,安装步骤: (1)控制面板--添加删除程序--添加删除组件---Internet信息服务--安装。安装完成后,会在管理工具中生成Internet信息服务组件,还会在C盘生成Inetpub文件夹,里面有一个WWWROOT文件夹。 (2)将你PHP文件放到WWWROOT文件夹中,必须是这个文件夹,放在其它文件夹无效. (3)打开IE浏览器,在地址栏中输入:http://127.0.0.1/**** ****是你的PHP文件名,也可以将PHP文件名改为 default.asp,这样就不用输入文件名,直接回车就行了,127.0.0.1是指本地机器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值