18
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PHPでオブジェクト内のプロパティの値を取得

Last updated at Posted at 2017-11-09

LaravelでDBクエリビルダを使ってレコードを取得した時に、stdClassが返って来てて、値だけ欲しいんだけどな〜と悩んでいたけど実は簡単にプロパティの値を取得出来た。

通常は、以下のようにしてプロパティの値にアクセス出来る。

//stdClassを作成 (object型への変換によってstdClassが作成される)
$obj = (object)array('key' => 'value');

//プロパティの値にアクセス
echo $obj->key;//'value'

しかし、プロパティのキーがLAST_INSERT_ID()のように()がついていた場合に、以下のようにするとエラーになる。
()がつくとメソッドになってしまい、そんなメソッドは存在しないので怒られる。

echo $obj->key;//Call to undefined method stdClass::LAST_INSERT_ID()

その場合は{}でくくるとプロパティのキーとして認識してもらえる。

//stdClassを作成 (object型への変換によってstdClassが作成される)
$obj = (object)array('key()' => 'value');

//プロパティの値にアクセス
echo $obj->{'key()'};//'value'

以上。

18
13
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?