はじめに。 PHP5から「タイプヒンティング(型宣言)」は存在したが、 ようやくPHP7で機能拡張されたことによってスカラ型の宣言も行えるようになった。 また、PHP7.2からobject型も扱えるようになっている。 ※PHP5の頃はタイプヒンティングと呼ばれていたが、PHP7から型宣言という呼び名に統一された。 以下が、これまでの経緯である。 型宣言の特徴 関数の引数/返り値に対して設定できる。 通常の変数に型宣言する事は出来ない。 想定外の値を受け取ると、TypeErrorをスロー 型宣言が必要な理由 そもそも型宣言は、関数制作者のためにある。 型宣言を行うことによるメリットとして、以下の点が挙げられる。 想定外の引数を受け取った時にエラーとなり、不具合を検知できる。 特に複数人開発において、関数製作者が引数に求める意図を明示できる。 型が保証されているので、関数の引数チェックが簡単に
![[PHP] 型宣言(PHP7) - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/eac2ae51c7cbde6178e50e7a4f9ca6cf617f7621/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fqiita-user-contents.imgix.net%252Fhttps%25253A%25252F%25252Fcdn.qiita.com%25252Fassets%25252Fpublic%25252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%253Fixlib%253Drb-4.0.0%2526w%253D1200%2526blend64%253DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnFpaXRhLWltYWdlLXN0b3JlLnMzLmFtYXpvbmF3cy5jb20lMkYwJTJGMTk4OTcxJTJGcHJvZmlsZS1pbWFnZXMlMkYxNTM3MjI4MzAzP2l4bGliPXJiLTQuMC4wJmFyPTElM0ExJmZpdD1jcm9wJm1hc2s9ZWxsaXBzZSZmbT1wbmczMiZzPTNhNTM0M2JjOGM5NDY4N2RhNDhkZjE1NTZjMWQ0MWNi%2526blend-x%253D120%2526blend-y%253D467%2526blend-w%253D82%2526blend-h%253D82%2526blend-mode%253Dnormal%2526s%253Dd59d93c2e2c914b350d455da094c99cc%3Fixlib%3Drb-4.0.0%26w%3D1200%26fm%3Djpg%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9JTVCUEhQJTVEJTIwJUU1JTlFJThCJUU1JUFFJUEzJUU4JUE4JTgwJTI4UEhQNyUyOSZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1wYWQ9MCZzPWZkZjk3YjcwYmM2YWNlMmEzZmMyNjI4MjBiYWY5ZGVk%26mark-x%3D120%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDBoaWthcnVfJnR4dC1jb2xvcj0lMjMxRTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LXBhZD0wJnM9MTI3MmUwMzc2NmE5N2UxYTQ1YzU1YWE2YTk0ZDFhNWQ%26blend-x%3D242%26blend-y%3D480%26blend-w%3D838%26blend-h%3D46%26blend-fit%3Dcrop%26blend-crop%3Dleft%252Cbottom%26blend-mode%3Dnormal%26s%3Dbf149dcf0fc54d3b3356c043aae9a7b8)