スキルアップ

【PHP】型宣言とStrictモード:厳密な型チェックでコードの品質向上

PHPで厳密な型チェックを実現する方法

PHPの型チェックの重要性

PHPは動的型付け言語ですが、最近のバージョンではより厳密な型チェックが可能になりました。型チェックを強化することで、ランタイムエラーを減少させ、コードの信頼性を高めることができます。ここでは、PHPで厳密な型チェックを行うための主要な手法を紹介します。

関数の型宣言

PHP7以降、関数の引数や戻り値に型宣言を加えることが可能になりました。これにより関数が期待する値の型を明確に指定できます。

以下は、引数と戻り値に型宣言を使用した関数の例です。

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

この関数addは、二つの整数を引数として受け取り、その和を整数として返します。

Strictモードの活用

型宣言を導入する際、さらに厳密な型チェックを実現するためにstrictモードを使用することが推奨されます。strictモードを有効にするには、ファイルの最初に declare(strict_types=1);を記述します。これにより、型が一致しない場合にPHPがエラーを発生させます。

strictモードの例

<?php

declare(strict_types=1);

・・・

    public function add(int $a, int $b): int
    {
        return $a + $b;
    }

・・・

echo add(5, "10"); // TypeErrorが発生する

strictモードでは、型が正確に一致しない場合にエラーが発生するため、より安全なコードが書けます。

Nullを許容する場合

型宣言では、特定の型またはnullを許容することも可能です。これは、引数や戻り値がnullの可能性がある場合に便利です。

Null許容型の宣言

以下の例では、nullまたは整数を受け取る関数を示しています。

/**
 * 平方根を計算して返却
 **/
public function getSquareRoot(?int $number): ?float {
    return $number ?? sqrt($number);
}

この関数`getSquareRoot`は、整数またはnullを引数として受け取り、その平方根を計算して返します。引数がnullの場合、戻り値もnullになります。

よく使う型

PHPでは、以下のような型がよく使用されます。

  • int:整数
  • float:浮動小数点数
  • string:文字列
  • bool:論理値(trueまたはfalse)
  • array:配列
  • object:オブジェクト
  • callable:コールバック関数
  • iterable:反復可能な値(配列またはTraversableオブジェクト)

これらの型を適切に使用することで、PHPコードの堅牢性と可読性を高めることができます。

最後に

PHPでの厳密な型チェックは、コードの品質と安定性を向上させるために重要です。strictモードの利用と型宣言を活用することで、エラーを早期に発見し、より保守しやすいコードを書くことができます。PHPの強力な型システムを活用して、より効率的で信頼性の高いアプリケーション開発を目指しましょう。

フリーランスフルリモート環境に興味がある方は、下記の記事も参考になるかと思います。

  • この記事を書いた人

zuu

現役フリーランスlaravelエンジニアのスキルスタックブログです。 日々の技術的発見やフリーランスエンジニア業界についてのあれこれをご紹介します。エージェントは PE-BANK を利用しています。

-スキルアップ