PHP7新特性1

一. 前言

PHP7具有很多用于编写高性能,高效能的新特性,同时也移除了一些历史版本中过时的特性,若使用过时的特性的话,在PHP7中会触发一个Error错误。目前大多数的致命错误都可以被异常捕获。所以PHP不再显示一些不标准的致命错误,取而代之的是抛出一个携带很多可用信息的异常。

二.OOP特性

1.类型声明:函数或者是对象的方法都可以使用

在PHP7之前,我们在函数和类之间传递参数时不需要声明变量类型。同样滴,在返回数据时也不必声明类型。任何数据类型都可以被传递,返回。这样会带来一个问题----PHP不清楚你传递的是什么类型的变量。

为解决这个问题,PHP7引入了类型声明,目前明确的有两类变量可以声明类型,1是形参,2是返回值。

1.1.形参类型声明

PHP7将类型声明变成了可能。PHP7支持的形参类型声明的类型有整形,浮点型,字符串,布尔型。

class person
{
    declare(strict_type=1);  //strict_types=1 及开启严格模式.默认是弱类型校验.

    public function age(int $age)
    {
        return $age;
    }

    public function name(string $name)
    {
        return $name;
    }
}

$person = new Person();
echo $person->age(30);
echo $person->name('this is my name!');

  由上面的代码得知,我们封装了一个person类,这个类有两个函数,分别是age 和name。其中age函数的形参类型声明为int类型,而name函数的形参类型声明为string类型。而strict_type=1表示类型的检查开启严格模式,因为PHP7是默认弱类型检查的,比如我们输入代码echo $person->age(30.5); 则会提示Uncaught Type Error的致命错误,提示age方法只接受整型数而不是浮点数。

 

1.2. 返回类型声明。

PHP7的另一个重要特性是支持返回类型的声明。无论是在函数还是对象的方法中,我们都可以声明返回类型。

Class Person
{
    public function age(float $age) : string
    {
        return 'Age is '.$age;
    }

    public function name(string $name) : string
    {
        return $name;
    }
}

如上面代码所示,我们使用了返回类型声明,Person类中的age和name都返回string字符串。

返回类型声明还可以使用对象作为返回类型。

Class Address
{
    public function getAddress()
    {
        return ['street'=>'street1','country'=>'china'];
    }
}


Class Person
{
    public function getAddress()
    {
        return new Address();
    }
}

由上面代码所示,getAddress方法返回一个address对象。

类型声明的好处在于:它让函数和方法的形参和返回值有所预期,避免不必要的数据传递,从而造成错误。

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值