从PHP5到PHP7的注意事项(2) PHP7的一些新特性

作者: wxfeng 分类: php 发布时间: 2017-01-17 00:00    阅读 1,139 次

1. define定义常量不仅仅只支持标量,还支持了数组

<?php
define
('PHPXY', array(
    
'凤姐',
    
'芙蓉姐姐',
    
'杨幂是臭脚'
));

echo PHPXY[1]; // 输出的结果是“芙蓉姐姐”
?>


2.比较的时候支持<=> 可以比较字符串,数组,整型。

<?php

// Integers
echo <=> 1// 0
echo <=> 2// -1
echo <=> 1// 1

PHP学院评:我们认为实际用户不大,在实际工作中使用量不会很高


3.在PHP7 中支持了 函数的强制参数类型指定


<?php
// Coercive mode
function sumOfInts(int $ints)
{
    return 
array_sum($ints);
}

var_dump(sumOfInts(2'3'4.1));


//本例中会输出9,你想想为什么哟?——因为强制规定为了整型


PHP学院评:function funcName(… 参数) 是PHP5.6开始支持的。不要认为是PHP7里的知识点

4. 返回类型也在强制进行规定

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]));


5. 新建了call方法在外部来调用,更短的方式将匿名函数,追加进对向中且完成调用

class {private $x 1;}

// Pre PHP 7 code
$getXCB = function() {return $this->x;};
$getX $getXCB->bindTo(new A'A'); // intermediate closure
echo $getX();

// PHP 7+ code
$getX = function() {return $this->x;};
echo 
$getX->call(new A);


6. 成员方法中也可以规定必须要返回某个类类型


class {}
class 
extends {}

class C
{
    public function 
test() : A
    
{
        return new 
A;
    }
}


如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

您的电子邮箱地址不会被公开。