PHP を使用して開発を行うと、オブジェクト データを配列に変換する必要がある状況によく遭遇します。 PHP では、get_object_vars
関数を使用して、オブジェクト内の変数を配列に変換できます。
まず、get_object_vars
関数の使用方法を見てみましょう。この関数はオブジェクト パラメーターを受け取り、オブジェクト内のすべてのパブリック メンバー変数を含む連想配列を返します。配列のキーはメンバー変数の名前、配列の値はメンバー変数の値です。以下は、get_object_vars
関数を使用したサンプル コードです。
class Person { public $name; public $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } } $person = new Person("John", 25); $personArray = get_object_vars($person); print_r($personArray);
上記のサンプル コードでは、まず Person
クラスを定義し、コンストラクター ## で初期化します。 #name 変数と
age 変数。次に、
Person オブジェクト
$person を作成し、それを
$personArray 変数に割り当てます。最後に、
print_r 関数を使用して、
$personArray 配列の内容を出力します。
Array ( [name] => John [age] => 25 )前述したように、
get_object_vars 関数はパブリック メンバー変数のみを返すため、オブジェクト内のプライベート メンバーは返されません。変数を取得できません。オブジェクト内のすべてのメンバー変数を取得する必要がある場合は、PHP リフレクション メカニズムの
getProperties メソッドを使用できます。
ReflectionClass クラスの
getProperties メソッドを使用して、オブジェクトのプライベート メンバー変数を配列に変換するサンプル コードです。
上記のサンプル コードでは、
という名前のクラスを定義し、コンストラクターでプライベート変数 $name
と $age
を初期化します。次に、person
オブジェクト $person
を作成します。
クラスを使用して $person
のクラス名を取得し、クラス名。 getProperties
メソッドを使用して、$person
クラス内のすべてのプライベート メンバー変数を取得し、これらの変数を $properties
変数に保存します。 ループでは、最初に、
setAccessible
メソッドを使用してプライベート メンバー変数にアクセスできるように設定します。次に、
メソッドを使用して変数の名前を取得し、getValue
メソッドを使用して変数の値を取得します。最後に、変数名と変数値を $personArray
配列に保存します。 上記のコードを実行すると、次の出力が得られます:
<pre class='brush:php;toolbar:false;'>class Person {
private $name;
private $age;
public function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
private function introduce() {
echo "My name is " . $this->name . " and my age is " . $this->age . ".";
}
}
$person = new Person("John", 25);
$reflectedPerson = new ReflectionClass(get_class($person));
$properties = $reflectedPerson->getProperties(ReflectionProperty::IS_PRIVATE);
$personArray = [];
foreach ($properties as $property) {
$property->setAccessible(true);
$personArray[$property->getName()] = $property->getValue($person);
}
print_r($personArray);</pre>
多くの場合、オブジェクト データを配列に変換する必要があります。これは、PHP の組み込み
関数とリフレクション メカニズムの
getProperties メソッドを使用して簡単に行うことができます。
以上がPHPはオブジェクトデータを配列に変換しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。