轨道
/
PHP
PHP
/
练习
/
市政办公室
市政办公室

市政办公室

学习练习

简介

类型声明

PHP 中的类型声明会在运行时为函数的实参、返回值和类属性提供类型断言。 对于函数,可以加上void返回类型,表示函数不返回任何值。 声明的类型在运行时也起到断言的作用,确保函数返回的类型是合理的。

<?php

class Driver
{
    private int $serial_number;

    public function setSerialNumber(int $number): void
    {
        $this->serial_number = $number;
    }

    public function getSerialNumber(): int
    {
        return $this->serial_number; 
    }
}

$driver = new Driver();
$driver->setSerialNumber("Version 1b"); // This will throw a TypeError

联合类型

如果函数的实参、返回值或类属性可以是多种类型,就可以声明联合类型。

<?php

class IdentityCard
{
    private int|null $id = null;

    public function assign(int|float $id): void
    {
        $this->id = intval($id);
    }
}

$card = new IdentityCard();
$card->assign(5.0);

混合类型

写代码时,我们可能无法指定类型。 从 PHP 8.0 开始,PHP 提供了一种名为mixed的“逃生舱”类型。 mixed等价于object|resource|array|string|float|int|bool|null的联合类型。

说明

你已经在市政办公室工作了一段时间,也开发了一套工具来提高日常工作的效率,比如填写表格。

现在,一位新同事要加入你们,你意识到自己做的工具可能不够一目了然。 你们办公室有很多奇怪的习惯,比如填表时总要用大写字母,还不能让字段留空。

作为第一步,你决定加上 PHP 类型声明,好让新同事能迅速上手,开始使用你的工具。

1. 声明 Address 类的类型

为 Address 类中声明的每个属性添加属性类型声明。 每个类属性都应声明为字符串。

2. 声明用空白值填写表单时的类型

为 Form 类中的 blanks 方法添加形参类型声明和返回类型声明。 该方法应接收一个整数长度,并返回空白行的字符串表示。

3. 声明把值拆分成单个字母时的类型

为 Form 类中的 letters 方法添加形参类型声明和返回类型声明。 该方法应接收一个表示单词的字符串,并返回一个由字母组成的数组。

4. 声明检查值是否能放进表单时的类型

为 Form 类中的 checkLength 方法添加形参类型声明和返回类型声明。 该方法应接收一个字符串单词和一个整数最大长度,并返回 true 或 false 值。

5. 声明在表单中格式化地址时的类型

为 Form 类中的 formatAddress 方法添加形参类型声明和返回类型声明,其中形参类型要用到前面更新过的 Address 类。 该方法应接收一个 Address,并返回一个格式化后的字符串。

通过 GitHub 编辑 链接将在新窗口或新标签页中打开
PHP Exercism

准备好开始 市政办公室 了吗?

注册 Exercism,借助 11 个概念122 个练习 和真人导师指导,学习并掌握 PHP,全部免费。