PHPの型 | 型の確認をする方法について理解しよう

by

in

PHPはウェブ開発の世界で非常に人気のあるプログラミング言語であり、その柔軟性とパワーによって広く利用されています。

PHPの魅力の一つとして、データ型に関する柔軟性が挙げられます。

変数には異なる型のデータを格納でき、これにより様々なタイプの情報を扱うことができます。

しかし、データ型の柔軟性はときにコードの予測不可能性を引き起こすことがあります。これが、型の確認と型変換が重要な役割を果たす理由です。

正確な型情報がなければ、コードのエラーやバグが生じる可能性が高まります。

この記事では、PHPの型に焦点を当て、型の確認と変換について詳しく探求します。

PHPの型について理解し、コードの安全性と効率性を向上させるための基本的な原則を学びましょう。

なお、PHP8.1で確認した物をまとめていきます。

PHPで使えるデータ型

代表的なPHPに組み込まれている型は以下になります。

  • ヌル (null)
  • void
  • 整数型 (int)
  • 浮動小数点数 (float)
  • 文字列型 (string)
  • 真偽型 (bool)
  • 配列型 (array)
  • オブジェクト型 (object)
  • その他のデータ型
    • resource、never

詳細についてはこちらから参照することができます。

https://www.php.net/manual/ja/language.types.type-system.php

型の確認方法

PHPは動的型付け言語であるため、変数の型は実行時に決定されます。変数がどの型であるかを確認するためには、いくつかの方法があります。

gettype() 関数を使用して変数の型を確認

PHPの gettype() 関数は、変数の型を取得するのに使用されます。以下はその使用例です。

<?php

var_dump(gettype(42)); // string(7) "integer"
var_dump(gettype('42')); // string(6) "string"
var_dump(gettype(4.2)); // string(6) "double"
var_dump(gettype(null)); // string(4) "NULL"
var_dump(gettype(true)); // string(7) "boolean"
var_dump(gettype(new stdClass())); // string(6) "object"
var_dump(gettype([1, 2])); // string(5) "array"

gettype() 関数は変数の型を文字列で返します。

注意点としてはPHPマニュアルでは「浮動小数点数 (float)」と紹介されていますが、「double」と表示されたり、表記ブレが存在するのであらかじめ確認しておく必要があります。

is_*() 関数を使用した型の確認

前述の gettype() を使うことで型の確認は可能ですが、型を文字列で比較するのでエディタのコード補完をしてくれませんし、万が一typoした場合にバグの原因になってしまいます。

そういった問題を回避するためにPHPには、特定の型を確認する is_*() 関数が用意されています。

例えば、整数型を確認するには is_int() を、文字列型を確認するには is_string() を使用して返却値にboolean型が返却されて確認することができます。

実際に使用する場合には以下を参照してください。

  • is_string() – 変数の型が文字列かどうかを調べる
  • is_float() – 変数の型が float かどうか調べる
  • is_int() – 変数が整数型かどうかを検査する
  • is_bool() – 変数が boolean であるかを調べる
  • is_object() – 変数がオブジェクトかどうかを検査する
  • is_array() – 変数が配列かどうかを検査する
  • is_numeric() – 変数が数字または数値形式の文字列であるかを調べる
  • is_null() – 変数が null かどうか調べる

クラス名の取得をしてobject型の判別

他にもobject型と判定されるクラスについても、クラス名を取得することで何のobjectなのかを判別することができます。

<?php

class MyClass {}
$obj = new MyClass();

var_dump($obj instanceof MyClass); // bool(true)
var_dump(get_class($obj)); // string(7) "MyClass"
var_dump(get_class($obj) === MyClass::class); // bool(true)

instanceof 演算子を使用した方法と get_class() を使用してobject型を確認することができる方法を紹介しました。これは特にクラスの型を確認する際に役立ちます。

終わりに

以上、PHPの型を確認する方法について紹介しました。

これらの方法を駆使して、変数の型を確実に理解し、適切な処理を行うことができます。

型の確認は、特に条件分岐や関数の引数の検証など、多くの場面で重要です。型が一致しない場合にエラーを防ぐために、しっかりと型の確認を行いましょう。

お疲れ様でした。

投稿者


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


モバイルバージョンを終了