1. ホーム
  2. php

PHP stdObject の最初の要素を取得します。

2023-10-18 15:50:52

質問

次のようなオブジェクト($videosとして格納されている)があります。

object(stdClass)#19 (3) {
  [0]=>
  object(stdClass)#20 (22) {
    ["id"]=>
    string(1) "123"

  etc...

ループさせることなく、その最初の要素のIDだけを取得したい。

配列だったらこうする。

$videos[0]['id']

以前はこのように動作していました。

$videos[0]->id

しかし、上記の行で、"Cannot use object of type stdClass as array..."というエラーが発生しました。PHPのアップグレードが原因かもしれません。

では、ループせずに最初のIDに到達するにはどうすればよいのでしょうか?可能でしょうか?

ありがとうございます!

どのように解決するのですか?

PHP 7.4 のアップデート

PHP 7.4から曲線ブレースアクセス構文が非推奨になりました。

2019年更新

OOPSのベストプラクティスに話を移すと、@MrTrickの回答が正解である必要があります。 私の答えは、ハックされた解決策を提供しますが、それは最良の方法ではありません。 ベストメソッドではありません。

単純に{}を使用して反復します。

$videos{0}->id

この方法では、オブジェクトが破壊されることはなく、オブジェクトを簡単に反復処理することができます。

PHP 5.6 以降では、次のようにします。

$videos{0}['id']