php7.0 新特性,PHP7新特性

1.标量类型声明

可以使用字符串(string), 整数 (int), 浮点数 (float), 以及布尔值 (bool),以前只支持类名、接口、数组及Callable.

两种风格:强制转换模式(默认)与严格模式( declare(strict_types=1) );

function xxx(int $a, string $b) :array

{

return array($a, $b);

}

2.返回值类型声明

PHP 7 增加了对返回类型声明的支持。 类似于参数类型声明,返回类型声明指明了函数返回值的类型。可用的类型与参数声明中可用的类型相同。

function arraysSum(array ...$arrays): array

{

return array_map(function(array $array): int {

return array_sum($array);

}, $arrays);

}

print_r(arraysSum([1,2,3], [4,5,6], [7,8,9]));

以上实例会输出:

Array

(

[0] => 6

[1] => 15

[2] => 24

)

3.??运算符NULL 合并运算符

//原写法

$username = isset($_GET['user]) ? $_GET['user] : 'nobody';

//现在

$username = $_GET['user'] ?? 'nobody';

4.<=> 比较运算符也叫太空船操作符(组合比较符)

就是看两个表达式值的大小,三种关系: = 返回0、< 返回-1、 > 返回 1

语法:$c = $a <=> $b

如果$a > $b, $c 的值为1

如果$a == $b, $c 的值为0

如果$a < $b, $c 的值为-1

5.define支持定义数组类型的值

define('ARR',['a','b']);

echo ARR[1];//

6.匿名类

现在支持通过new class 来实例化一个匿名类,实例如下:

interface Logger {

public function log(string $msg);

}

class Application {

private $logger;

public function getLogger(): Logger {

return $this->logger;

}

public function setLogger(Logger $logger) {

$this->logger = $logger;

}

}

$app = new Application;

$app->setLogger(new class implements Logger {

public function log(string $msg) {

echo $msg;

}

});

var_dump($app->getLogger());

?>

以上实例会输出:

object(class@anonymous)#2 (0) {

}

7.匿名函数

$anonymous_func = function(){return 'function';};

echo $anonymous_func(); // 输出function

8.增加了整除函数 intdiv

var_dump(intdiv(10, 3));

?>

以上实例会输出:

int(3)

9.PHP Closure::call()

PHP 7 的 Closure::call() 有着更好的性能,将一个闭包函数动态绑定到一个新的对象实例并调用执行该函数。

实例

实例

class A {

private $x = 1;

}

// PHP 7 之前版本定义闭包函数代码

$getXCB = function() {

return $this->x;

};

// 闭包函数绑定到类 A 上

$getX = $getXCB->bindTo(new A, 'A');

echo $getX();

print(PHP_EOL);

// PHP 7+ 代码

$getX = function() {

return $this->x;

};

echo $getX->call(new A);

?>

以上程序执行输出结果为:

1

1

更多http://www.runoob.com/php/php7-new-features.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值