古庄親方の上級試験コラム#002「言語リファレンス > 型 その1」

PHPでは、変数には型があり、関数のパラメータや戻り値、クラスのプロパティに型の指定をする事ができます。 https://www.php.net/manual/ja/language.types.type-system.php

「スカラー型」と呼ばれる型は4種類あります。

boolは「論理値」などと呼ばれ、trueまたはfalseのいずれかの値を持ちます。 https://www.php.net/manual/ja/language.types.boolean.php
trueとfalseの定数は「大文字小文字を区別しない」ため、trueと書いてもTRUEと書いてもTrueと書いても認識されます。

intは「整数」などと呼ばれ、マイナスを含む整数を扱うことができます。 https://www.php.net/manual/ja/language.types.integer.php
表記は、通常の10進数表記のほか、16進数表記、8進数表記、2進数表記での記載が可能です。
16進数表記は先頭に0x、8進数表記は先頭に0(またはPHP8.1以降だと0o)、2進数表記は先頭に0bをつける必要があります。
PHP 7.4.0以降、可読性を向上させるために整数リテラルの桁の間にアンダースコア (_) を含めることができるようになりました。
int型で扱える値は PHP_INT_SIZE や PHP_INT_MAX / PHP_INT_MIN で確認ができます。扱える範囲を超えた値は、float型になります。

float(double)は「浮動小数点数」などと呼ばれ、マイナスを含む小数を扱う事ができます。 https://www.php.net/manual/ja/language.types.float.php
表記は、通常の10進数表記のほか、E表記での記載が可能です。
また、int同様、桁の間にアンダースコア (_) を含めることができるようになりました。
floatは「浮動小数点数」であるため、誤差があります。比較に ===(や==)を使うとうまく比較ができないので注意しましょう。

stringは「文字列」などと呼ばれ、文字の連続を扱います。 https://www.php.net/manual/ja/language.types.string.php
文字列は、「引用符」「二重引用符」「ヒアドキュメント構文」「Nowdoc構文」の4種類の書き方があります。
「引用符 / Nowdoc構文」と「二重引用符 / ヒアドキュメント構文」で中の文字の解釈に違いが出てくるので、注意しましょう。

型を調べる時は、var_dumpでの目視の確認のほかに、gettype()やget_debug_type()、is_*()を使う事ができます。gettype()とget_debug_type()では、返される文字列が少し違うのでマニュアルで確認をしておくとよいでしょう。
get_debug_type()はPHP8からの関数なので、実際に業務で使う時はPHPのバージョンを確認しておくとよいでしょう。
is_scalar()は、この記事で扱っている「int、float、string あるいは bool」の時にtrueになります。

このコラムに関連するコードはこちらになります( https://github.com/php-engineer-examination/php8_column_expert/blob/main/src/002.php )。


PHP8技術者認定試験上級/準上級試験については以下をご覧ください。
https://www.phpexam.jp/summary/expert8/

同模擬試験については以下をご覧ください。
https://study.prime-strategy.co.jp/study/ph8ex1/

この記事が気に入ったら
いいね または フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次