PHPでオブジェクトからキーを取得して表示する方法
まず、次のようなオブジェクトを例として考えてみましょう。
$employeeDetails = (object) [
'firstName' => 'John',
'lastName' => 'Doe',
'countryName' => 'US'
];このオブジェクトから、値ではなくキーのみを抽出し、以下のように一覧表示したいケースはよくあります。
firstName lastName countryName
オブジェクトのキーだけを取得して表示するには、PHPの array_keys() 関数を使用します。
ただし array_keys() は本来、配列を対象とする関数です。そのため、オブジェクトをそのまま渡すことはできず、(array) によるキャスト(型変換)で一度連想配列に変換してから渡す必要があります。
サンプルコード
<!DOCTYPE html>
<html>
<body>
<?php
$employeeDetails = (object) [
'firstName' => 'John',
'lastName' => 'Doe',
'countryName' => 'US'
];
$allKeysOfEmployee = array_keys((array)$employeeDetails);
echo "すべてのキーは以下の通りです:","<br>";
foreach($allKeysOfEmployee as $tempKey)
echo $tempKey,"<br>";
?>
</body>
</html>実行結果
すべてのキーは以下の通りです: firstName lastName countryName
処理の流れを解説
ポイントは次の1行です。
$allKeysOfEmployee = array_keys((array)$employeeDetails);
(array)$employeeDetails… オブジェクトを連想配列にキャストします。array_keys(...)… 変換された配列からすべてのキー(firstName、lastName、countryName)を配列として取得します。
取得したキーの配列は、foreach ループで回しながら各キーを順番に出力しています。ループ変数に参照(&)を付ける必要はないため、通常の値渡しで問題ありません。
この手法は、設定オブジェクトやAPIレスポンスなど、プロパティ名(キー)の一覧が必要になった場面で非常に便利です。同様に、値だけを取得したい場合は array_values() を使うことで同じ考え方で対応できます。
-
PHPのmethod_exists()関数とは?メソッドの存在確認方法をわかりやすく解説
PHPのmethod_exists()関数は、指定したクラスやオブジェクトに特定のメソッドが存在するかどうかをチェックするための組み込み関数です。動的にメソッドを呼び出す前の存在確認など、エラーを防ぎたい場面で非常に役立ちます。基本構文method_exists(object, name_of_method)パラメータobject − チェック対象となるオブジェクトのインスタンス、またはクラス名(文字列)を指定します。name_of_method − 存在を確認したいメソッドの名前を文字列で指定します。戻り値method_name で指定されたメソッドが、対象のオブジェクト(またはクラス)に対
-
PHPのget_object_vars()関数の使い方を徹底解説
PHPのget_object_vars()関数は、指定されたオブジェクトが持つプロパティを取得するための関数です。オブジェクト内で定義されているプロパティを、プロパティ名をキーとした連想配列の形式で返します。 構文 get_object_vars(object) パラメータ object − プロパティを取得したいオブジェクトのインスタンスを指定します。 戻り値 get_object_vars()関数は、指定されたオブジェクトの定義済みプロパティを連想配列として返します。まだ値が代入されていないプロパティについては、NULLが返されます。 なお、この関数をクラスの外部から呼び出した場合、取