php版本和mysql版本区别_php版本之间的区别

f3c3719da46162f1c5bc982b50d03f29.png

一、PHP 5.2、5.3、5.4、5.5、5.6 版本区别对比以及新功能详解PHP5.2 以前:autoload, PDO 和 MySQLi, 类型约束

PHP5.2:JSON 支持

PHP5.3:弃用的功能,匿名函数,新增魔术方法,命名空间,后期静态绑定,Heredoc 和 Nowdoc, const, 三元运算符,Phar

PHP5.4:Short Open Tag, 数组简写形式,Traits, 内置 Web 服务器,细节修改

PHP5.5:yield, list() 用于 foreach, 细节修改

PHP5.6: 常量增强,可变函数参数,命名空间增强

php5.3

PHP5.3算是一个非常大的更新,新增了大量新特征,同时也做了一些不向下兼容的修改:

1、匿名函数$func=function($arg){ echo $arg;

}$func('hello');

2、新增了魔术方法 __invoke(),__callStatic();随着匿名函数的加入,PHP 引入了一个新的魔术方法 __invoke().

该魔术方法会在将一个对象作为函数调用时被调用:

class A

{

public function __invoke($str)

{

print "A::__invoke(): {$str}";

}

}

$a = new A;

$a("Hello World");

输出毫无疑问是: A::__invoke(): Hello World

__callStatic() 则会在调用一个不存在的静态方法时被调用。

3、命名空间<?php

// 命名空间的分隔符是反斜杠,该声明语句必须在文件第一行。

// 命名空间中可以包含任意代码,但只有 **类, 函数, 常量** 受命名空间影响。

namespace XXOO\Test;

// 该类的完整限定名是 \XXOO\Test\A , 其中第一个反斜杠表示全局命名空间。

class A{}

// 你还可以在已经文件中定义第二个命名空间,接下来的代码将都位于 \Other\Test2 .

namespace Other\Test2;

// 实例化来自其他命名空间的对象:

$a = new \XXOO\Test\A;

class B{}

// 你还可以用花括号定义第三个命名空间

namespace Other {

// 实例化来自子命名空间的对象:

$b = new Test2\B;

// 导入来自其他命名空间的名称,并重命名,

// 注意只能导入类,不能用于函数和常量。

use \XXOO\Test\A as ClassA

}

二、php7的新特性./bin/php -v #查看PHP版本

./bin/php -m #查看安装的模块

1、变量类型function test(int $a,string $b,array $c):int{

}

2、错误异常try/catch

3、zval使用栈内存节约了内存分配

php5

zval*val;make_std_zval(val);

php7 zval val;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值