1.6PHP语言的类型(Type)

1.四种标量(Scalar)类型

  • bool(布尔型):true或flase,不区分大小写。
  • int(整型)
  • float(浮点型,也称作 double,双精度)
  • string(字符串): 常规字符串,比如”string”;数值字符串,比如“888”。

2.四种复合(Compound)类型

  • array(数组)
  • object(对象)
  • callable(可调用)
  • iterable(可迭代)

3.两种特殊类型

  • resource(资源)
  • NULL(空类型):NULL 类型唯一可能的值就是 null,表示一个变量没有值,不区分大小写。

4.联合(Union)类型

联合类型接受多个不同的类型做为参数。

T1|T2|...

5.mixed类型

mixed类型为PHP支持的任意类型,等同于 :

联合(union)类型  object|resource|array|string|float|int|bool|null

6.void类型

void 是一个返回类型,用于标识函数没有返回值。

void

7.严格(Strict)类型模式

在开启严格类型模式下,只能接受完全匹配的类型,否则会抛出 TypeError。 唯一的例外是 int 值也可以传入声明为 float 的类型。只有为标量类型的声明开启严格类型。

要开启严格模式,使用 declare 开启 strict_types

<?php
declare(strict_types=1);

function sum(int $a, int $b) {
    return $a + $b;
}

var_dump(sum(1, 2));
var_dump(sum(1.5, 2.5));
?>
//输出
int(3)

Fatal error: Uncaught TypeError: sum(): Argument #1 ($a) must be of type int, float given, called in - on line 9 and defined in -:4
Stack trace:
#0 -(9): sum(1.5, 2.5)
#1 {main}
  thrown in - on line 4

8.类型声明

类型声明可以用于函数的参数、返回值,PHP 7.4.0 起还可以用于类的属性,来显性的指定需要的类型,如果预期类型在调用时不匹配,则会抛出一个 TypeError 异常。

类型说明
bool值必须为一个布尔值。
int值必须为一个整型数字。
float值必须为一个浮点数字。
string值必须为一个 string。
array值必须为 array。
object值必须为 object。
callable值必须是一个有效的 callable。 不能用于类属性的类型声明。
iterable值必须为 array 或 实现 Traversable 接口的类的实例。
Nullable值必须为 null。
Class/Interface值必须为给定类和接口的实例。
self值必须是使用类型声明的同一个类的实例。 只能在类的内部使用。
parent值必须是使用类型声明的类的父类的实例。只能在类的内部使用。
mixed值可以为任何类型。

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/back/php/4935.html

发表评论

登录后才能评论