PHP でクラスなしのオブジェクトを作成する
-
PHP で
new stdClass()
を使用してクラスのないオブジェクトを作成する -
object
データ型を使用して配列をオブジェクトに型キャストし、クラスを作成せずにオブジェクトを作成する -
PHP で
json_dencode()
関数を使用してクラスを作成せずにオブジェクトを作成する
この記事では、PHP でクラスを作成せずにオブジェクトを作成するメソッドを紹介します。
PHP で new stdClass()
を使用してクラスのないオブジェクトを作成する
PHP で基本クラスを作成せずに、stdClass()
からオブジェクトを作成できます。new
演算子を使用して、stdClass()
のオブジェクトを作成できます。オブジェクトは、プロパティを呼び出すことにより、プロパティに直接アクセスできます。したがって、stdClass()
を使用して動的オブジェクトとプロパティを作成できます。配列がオブジェクトに型キャストされると、コンパイラは stdClass()
のインスタンスを作成します。
たとえば、変数 $object
を作成し、new
演算子によって作成された stdClass()
のインスタンスを格納します。$object
オブジェクトから変数 property
を呼び出し、文字列を割り当てます。文字列 I am an object's property
を割り当てます。バックスラッシュ\
を使用して、テキスト内のアポストロフィをエスケープします。$object
変数に var_dump()
関数を適用して、変数に関する情報をダンプします。
以下の例では、stdClass()
のオブジェクトを作成し、オブジェクトのプロパティに値を即座に割り当てました。オブジェクトをダンプすると、出力に作成された stdClass
クラスのオブジェクトが表示されます。したがって、PHP で基本クラスを作成せずにオブジェクトを作成できます。
サンプルコード:
#php 7.x
<?php
$object = new stdClass();
$object->property = 'I am an object\'s property';
var_dump($object);
?>
出力:
object(stdClass)#1 (1) { ["property"]=> string(25) "I am an object's property" }
object
データ型を使用して配列をオブジェクトに型キャストし、クラスを作成せずにオブジェクトを作成する
PHP でクラスを作成せずにオブジェクトを作成し、object
データ型を使用して型をオブジェクトに型キャストすることができます。配列を stdClass
オブジェクトに型キャストできます。object
キーワードは、配列が配列をオブジェクトにタイプキャストする直前に括弧で囲まれます。タイプキャストされたオブジェクトに関する情報を表示する最初のメソッドとして、var_dump()
関数を使用できます。
たとえば、変数 $place
を作成し、その中に配列を格納します。配列には、city
と country
のキーと、Pokhara
と Nepal
のそれぞれの値が含まれています。$place
変数を新しい $obj
変数に割り当てます。$place
変数の直前に括弧で囲まれた object
データ型を記述します。$obj
をパラメータとして var_dump()
関数を呼び出します。
以下の例では、配列をオブジェクトにタイプキャストします。var_dump()
関数は、出力セクションに $obj
オブジェクトを表示します。これは、それが stdClass
オブジェクトであることを示しています。型キャストがどのように機能するかについては、PHP マニュアルを確認してください。
コード例:
#php 7.x
<?php
$place = ['city' => 'Pokhara', 'country' =>'Nepal'];
$obj = (object) $place;
var_dump($obj);
?>
出力:
object(stdClass)#1 (2) { ["city"]=> string(7) "Pokhara" ["country"]=> string(5) "Nepal" }
PHP で json_dencode()
関数を使用してクラスを作成せずにオブジェクトを作成する
json_decode()
関数は、JSON 文字列を PHP オブジェクトに変換します。この関数は、オブジェクトに変換される文字列パラメータを取ります。この関数は、オプションのブールパラメータも取ります。このブールパラメータのデフォルト値は false
で、JSON オブジェクトを PHP オブジェクトに変換します。値が true
の場合、JSON オブジェクトを連想配列に変換します。
たとえば、変数 $jsonobj
を作成し、それに JSON オブジェクトを保存します。オブジェクトには、キーとして Harry
、Tony
、および Juan
が含まれ、それぞれの値として整数値 27
、24
、および 32
が含まれます。キーと値のペアは中括弧で囲まれています。JSON オブジェクトは、文字列として引用符で囲まれています。次に、$jsonobj
変数で json_decode()
関数を使用します。var_dump()
関数を json_encode()
関数に適用して、エンコードされたオブジェクトに関する情報を表示します。
以下の例では、json_encode()
関数が JSON オブジェクトを stdClass
の PHP オブジェクトに変換します。var_dump()
関数は、オブジェクトのプロパティと値を表示します。したがって、PHP でクラスを作成せずにオブジェクトを作成しました。また、値のタイプも表示されます。json_decode()
関数の詳細については、PHP マニュアルを確認してください。
サンプルコード:
# php 7.x
<?php
$jsonobj = '{"Harry":27,"Tony":24,"Juan":32}';
var_dump(json_decode($jsonobj));
?>
出力:
object(stdClass)#1 (3) { ["Harry"]=> int(27) ["Tony"]=> int(24) ["Juan"]=> int(32) }
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn