擬似型
英語: pseudo-types
かつて使われていた用語で型宣言できないが、データの性質を表す型のこと
これらの表記の多くはPHPの言語機能として正式に取り入れられたため役割を終えた
2020年12月にPHPマニュアルから削除されており、現役の用語ではない
PHPマニュアルで利用されていた擬似型
https://web.archive.org/web/20200830172614/https://www.php.net/manual/ja/language.pseudo-types.php
mixed
mixedは、引数に多様な型 (全てである必要はない) を使うことができることを示します。
例えば gettype()関数は全ての PHP の型を受け入れるのに対し、str_replace()はstringとarrayのみを受け入れます。
mixed型はかつてPHPマニュアルでの代表的な擬似型でしたが、PHP 8.0で正式に型宣言可能なキーワードになった
str_replace()のような「stringとarrayのみを受け入れ」る型はユニオン型でstring|arrayと書かれるようになった
number
numberは、引数が integerまたはfloatのどちらでもよいことを示します。
PHP 8.0で正式にユニオン型が導入されたことに伴い、int|floatと書かれるようになった
abs()関数のようにintまたはfloatを返す関数はabs(int|float $num): intfloatと定義されている
かつてはabs(mixed $number): numberと書かれていた
callback
callback疑似型がこのドキュメントで使われていたのは、PHP 5.4 でcallableタイプヒントが導入される前のことでした。両者はまったく同じ意味です。
PHP 5.4でcallableが導入される前に記述されていた
void
返り値の型がvoidである場合は、 返り値に意味がないことを表します。パラメータ一覧でvoidが使用されている場合は、 その関数がパラメータを受け付けないことを表します。 PHP 7.1 以降では、voidが返り値の型ヒントとして受け付けできるようになりました。
返り値の型に記述できるvoid型はかつてはPHPマニュアルでの便宜上の記述に過ぎなかったが、PHP 7.1では正式な機能になった
かつてPHPマニュアルではパラメータにもvoidが使われていた
PHP5時代には型宣言記法が存在しなかったため、PHPマニュアルの関数リファレンスではPHPに型宣言が導入される以前は関数プロトタイプというC言語の関数宣言に似た表記が採用されていた
time()関数は引数を受け取らない関数
旧形式では int time(void)と書かれていた
このvoidは引数がないということを表す
新形式ではtime(): intになった
PHPのパラメータ定義と同じく、単に何も書かないだけになった
array|object
array|objectは、引数がarrayまたはobjectのどちらでもよいことを示します。
ユニオン型としてPHP 8.0で正式な型になったので個別の記法としては定義する必要がなくなった
https://www.php.net/manual/ja/language.types.declarations.php#language.types.declarations.union
...
関数のプロトタイプ宣言における$...は、…などを表します。 この変数名を用いるのは、たとえば任意の数の引数を取りうる関数などです。
可変長パラメータを表わしていた
var_dump()関数は1個以上の複数の引数を受け付ける
かつてはvoid var_dump ( mixed $expression [, mixed $... ] )と記載されていた
現在はvar_dump(mixed $value, mixed ...$values): voidとなっている