- 1. 概要
- 2. 一般的な型
- 3. nullable な型
- 4. mixted
- 5. 参考サイト
1. 概要
以前「PHP 5.6」から「7.2」へ移行したものだから、その間のこまごまとした経緯はよくわからんのです。
とりあえず、「PHP 7.2」以降、関数の引数や戻り値に型を定義することができるぞ・・・と。
これは、C言語がネイティブな人にとってはありがたいかもしれない。
ちなみに、2026年5月19日現在使用しているのは、「PHP 8.4.21」です。
2. 一般的な型
2026年5月19日現在、下記のような一般的な型が存在します。
| 型 | 宣言 | 備考 |
| 整数 | int | |
| 浮動小数点 | float、double | |
| 論理型 | bool | |
| 文字列 | string | |
| 配列 | array | |
| オブジェクト | object | |
| リソース | resource | |
| ヌル | null | |
3. nullable な型
本項は、参考サイトの請売りです。
「PHP」の場合、あるときは型規則からはずれて「NULL」として扱いたい時があるんだな。
これ、型宣言をしている型の前に ?(クエスチョンマーク)を書くことで「nullable」であることを定義できるんです。
便利。
4. mixed
「PHP 8.0.0」以降では、今度は逆に、なんでもありの型「mixed」というものが定義されております(2021年10月13日、リリースされてだいぶたってるけど)。
「mixed」は「NULL」を含んでいるので、「mixed」の型の前に、前項の「?」(nullable)をつけたら、エラーになります。
<?php
function f(mixed $arg): mixed
{
switch($arg)
{
case NULL:
printf("NULL が来た\n");
break;
case 1:
printf("数値の 1 が来た\n");
break;
case '2':
printf("文字の 2 が来た\n");
break;
case true:
printf("bool の true が来た\n");
break;
default:
break;
}
return $arg;
}
$return = f(NULL);
printf("[".$return."]が返った\n");
$return = f(1);
printf("[".$return."]が返った\n");
$return = f('2');
printf("[".$return."]が返った\n");
$return = f(true);
printf("[".$return."]が返った\n");
てな、ソースを書いて実行すると、下記の結果が得られます。
NULL が来た
[]が返った
数値の 1 が来た
[1]が返った
文字の 2 が来た
[2]が返った
数値の 1 が来た
[1]が返った
与える側と、受け取る側で、いくらかの齟齬があるので、気を付けないとね。
「1」と「true」は、ごっちゃになるわけです。
かと言って、「switch」の「case」には、それぞれ書いても、文法エラーには、ならないんだな。
5. 参考サイト
本ページは、下記のサイトを参考にさせていただきました。
「PHP: 型」
「PHPの型一覧 変数の型とタイプヒンティングできる型は別 #初心者」
「PHP マニュアル - 付録 - PHP 7.0.x から PHP 7.1.x への移行」
|
|