web-dev-qa-db-ja.com

PHPオブジェクトからキーを出力しますか?

オブジェクトBIRDがあり、[0]から[10]があり、各番号には「バグ」または「カブトムシ」または「ブヨ」のような小見出しとそれぞれの値があります。

印刷したい

BIRD 
    [0]
       bug = > value 

私はこれをどこで行うかを見つけることができません-パブリックとプライベートとクラスの話があり、それが私が落ちるところです

20
user723220

オブジェクトを型キャストすることで簡単にできます:

$keys = array_keys((array)$BIRD);

60
brenjt

Brenjtの応答と同様に、これはオブジェクトを型キャストする代わりにPHPのget_object_varsを使用します。

$array = get_object_vars($object);
$properties = array_keys($array);
28
nick

「オブジェクト」が実際には真のオブジェクトではなく連想配列である場合、array_keys()は警告やエラーなしで必要なものを提供します。

一方、オブジェクトが真のオブジェクトである場合、array_keys()を直接使用しようとすると警告が表示されます。

get_object_vars()を使用して、オブジェクトからキーと値のペアを連想配列として抽出できます。次に、array_keys()を使用して、これからキーを取得できます。

$keysFromObject = array_keys(get_object_vars($anObject));
2
Bart B