トップページ > 1. ドキュメント > 1.2. CharcoalPHPの基本 > 1.2.1. 基本知識 > プリミティブ型クラスについて

プリミティブ型クラスについて

プリミティブとは

PHPでは変数の型を意識することはあまりありませんが、CharcoalPHPではあえて変数の型を意識するようなプログラミングを推奨しています。たとえば文字列を格納する文字列型、整数を格納する整数型などはすべて「プリミティブ型」と呼ばれ、引数や一時変数として使用するためにそれぞれ個別のラップクラスが用意されています。このようなプリミティブ型クラスを使用することで、メソッド呼び出し時の規約を明確にし、プログラミング時にコンパイラのチェックを通すことで実行時エラーを少なくするメリットがあります。

プリミティブ型クラス

CharcoalPHPでは以下のようなプリミティブ型クラスが定義されています。

クラス名 PHP型 説明
Charcoal_Boolean bool TRUE(真)またはFALSE(偽)のいずれかの値をとる型
Charcoal_Float float 浮動少数点を格納する型
Charcoal_Integer integer 整数を格納する型
Charcoal_String string 文字列を格納する型

プリミティブ変換関数(boxing/unboxing)

あるメソッドから別のメソッドに文字列定数を渡す場合、毎回new Charcoal_String( “foo” )とするのはソースコードの可読性を損なってしまいます。そこでCharcoalPHPにはプリミティブ型の定数値、または変数からプリミティブ型クラスのオブジェクトを生成する「プリミティブ変換関数」(boxingといいます)が用意されています。

また、プリミティブ変換関数にはプリミティブ型クラスのオブジェクトからプリミティブ型の値に変換する変換関数もあります (unboxingといいます)。

タイプヒンティング(Type Hinting)によるメリットその1:実行時エラーチェック

PHPのタイプヒンティングは関数またはメソッドの引数に型またはクラス・インターフェイスを指定することで呼び出し時に静的な型チェックを受けられる仕組みです。 例えば、PHP組み込みの型arrayを使って以下のように引数が配列かどうかを実行時にチェックすすことができます。

このようにPHP5のタイプヒンティング機能を利用し、CharcoalPHPのプリミティブ型をタイプヒントする関数・メソッドを記述することでその関数・メソッドに渡す引数の正当性を実行時にチェックすることができます。 以下の例は呼び出し時に引数が「整数」または「文字列」であることをそれぞれチェックする関数です。

CharcoalPHPではCharcoalPHPのプリミティブ型をタイプヒントしない関数・メソッドを作成することもできますが、その場合はその関数・メソッドに渡された引数の正当性チェック(NULLでないか、期待した型の値を保持しているか)は実装者が責任を負わなければなりません。

タイプヒンティング(Type Hinting)によるメリットその2:IDEによる入力サポート

EclipseやNetBeansなど、一部のIDE(統合開発環境)ではタイプヒンティングをすることで引数の型・クラスを判定して自動的にメンバーを入力候補に表示させることが出来るため、効率的な開発に役立ちます。

Pocket

Comments are closed.