PHP - 文法 - 型


クラウディア 


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 への移行

audiobook.jp
AbemaTV 無料体験