PHP基础-匿名类与类型约束
<?php
/**
* Created by PhpStorm.
* User: Air15_2019
* Date: 2020/2/10
* Time: 19:00
*/
/*
* 匿名类和类型约束
* 匿名类的使用,需要PHP7.0+ 才支持
* */
//一般的类
class constraint{
protected $a;
protected $b;
public function __construct($a,$b){
$this->a=$a;
$this->b=$b;
}
public function Sums() {
return $this->a+$this->b;
}
}
$a=20;
$b=30;
$obj_c=new constraint($a,$b);
echo $obj_c->Sums();
echo '<hr>';
/*
* 有些类,在代码中只被应用了一次,所以我们可以采用匿名类的方式,简化代码;
* 匿名类,将参数放在class关键字后面,同时为了保证与实例化对象等同,所以在类名的前面使用了new 关键字,而且为了便于理解,整个类外面又被()包裹;
* 被包裹的整体,就与实例化后的类的对象等同;
* */
echo (new class (5.5,3.2){
protected $a;
protected $b;
public function __construct($a,$b){
$this->a=$a;
$this->b=$b;
}
public function Sums() {
return $this->a+$this->b;
}
})->Sums();
echo '<hr>';
/*
* 类型约束,主要是针对函数以及方法中的参数与返回值;
* 添加类型约束后,参数或者返回值会按照格式进行转化和输出;
* 支持约束的类型 数组/对象/类/闭包/回调/整形/布尔类型/浮点型/字符串/接口等
* 这里我们用函数作为例子,因为方法本质上也是函数,所以就不再列举了;
* */
function total(float $price,int $number):float {
return $price*$number;
}
echo total(6.8,6)
?>