PHP7 の型ヒント機能: エラーや不確実性を回避するために関数のパラメーターの型を明確にする方法は?
はじめに:
開発プロセス中、関数パラメータの受け渡しの問題によく遭遇します。場合によっては、関数パラメーターの種類が不明瞭なためにエラーや不確実性が発生することがあります。この問題を解決するために、PHP7 では型ヒンティング機能を導入しました。これにより、関数パラメーターの型を明示的に指定できるようになり、一般的なエラーが回避され、不確実性が軽減されます。この記事では、PHP7 での型ヒンティングの使用法を詳しく紹介し、具体的なコード例を示します。
1. タイプ ヒンティングの概念:
タイプ ヒンティングは、関数パラメーターの型を宣言する方法です。関数パラメータの前に指定した型を付けることで、関数に渡される値が期待される型であることを保証できます。渡された型が一致しない場合、致命的なエラーが生成されます。
2. タイプ ヒンティングの使用法:
PHP7 では、次のメソッドを使用してタイプ ヒンティングを実行できます:
<array>、<callable>、<bool>、<float>、<int>、<string>
)。以下に例を示します。 function addNumbers(int $a, int $b): int { return $a + $b; } echo addNumbers(5, 10); // 输出15 echo addNumbers("5", 10); // 报错,因为"5"不是一个整数
上記の例では、関数 addNumbers
のパラメータ $a
および $b
は次のように指定されています。整数 。渡された値が整数型ではない場合、致命的なエラーが生成されます。
class User { // ... } class UserService { public function register(User $user) { // ... } } $user = new User(); $service = new UserService(); $service->register($user); // 正确 $service->register("abc"); // 报错,因为"abc"不是 User 类的实例
上記の例では、関数 register
のパラメータ $user
が User## として指定されています。 # クラスインスタンス。渡された値が
User クラスのインスタンスではない場合、致命的なエラーが生成されます。
値を受け入れさせたい場合があります。
? を使用して、パラメータ型を使用可能としてマークできます。空のタイプ。以下に例を示します。
function searchUser(?string $keyword): array { // ... } var_dump(searchUser("John")); // array(1) { [0]=> string(4) "John" } var_dump(searchUser(null)); // array(0) { }
searchUser のパラメータ
$keyword は文字列型として指定されていますが、# は許容可能な ##null
値。渡された値の型が文字列または null
でない場合、致命的なエラーが生成されます。 3. タイプ ヒンティングの利点:
以上がPHP7 の型ヒント機能: エラーや不確実性を避けるために関数のパラメーターの型を明確にする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。