PHP7新特性(1)

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

一、OOP特性

在使用PHP7之前,我们在函数和类之间传递参数时不必声明变量类型,同样在返回数据时也不必声明变量类型。任何数据类型都可以被传递返回
——————〉这样就给PHP带来了很大的问题:PHP不清楚你传递的是什么类型的变量,函数和方法接收到的变量也不知道是什么类型。为了解决这个问题,PHP7引入了类型声明,目前明确的有两类变量可以声明类型:形参、返回值。

1.形参类型声明

PHP7支持的形参声明的类型有整型、浮点型、字符串型、布尔类型,可以用在函数形参及对象的方法形参上

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

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

    public function isAlive(bool $alive){
        return $alive;
    }
}
$person = new Person();
echo $person->name('Bob');
echo $person->age('19');
echo $person->isAlive(TRUE);

默认情况下,形参声明不是完全被限制的,这就意味着我们可以传递一个浮点数给期望得到整型数的方法。也可以做些限制,如: declare(strict_type = 1);

此时我们若传递一个浮点数给age的话,便会得到一个Uncaught Type Error,这个fatal错误告诉我们,Person : : age只能接受一个整型数而非浮点数。在需要字符串形参的情况下,如果你不提供字符串形参的话,也会出现类似报错。例如:

echo $person->alive('true');

2.返回类型声明

PHP7 无论在函数还是对象的方法中都支持返回类型的声明。

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

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

    public function isAlive(bool $alive) : string{
        return ($alive)?'yes':'no';
    }
}

上述代码所示,返回类型声明使用了data_type语法,对于形参类型声明与返回类型声明一样的情况是无影响的。

3.命名空间与use关键字批量声明

当代码量规模变大的时候,很多类会放在命名空间下,这样方便维护和管理。但是当出现一个命名空间下有很多类而且我们要一次性使用多个类时,我们还要把他们逐个声明在代码的顶部。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值