PHP

PHPのStdClassで動的なプロパティ名を扱う

普段は連想配列派なのですが、既存のコードを触っていると StdClass のオブジェクトに遭遇することが時々あります。

それ自体は問題ないのですが、プロパティ(メンバー変数)が連番になっていたりするとループして初期化したくなります。

でも StdClass のプロパティって動的に扱うことができたっけ?っとよく忘れるので備忘録。

連想配列の場合

name_1 から name_5 の 5 つの値を例に考えてみましょう。

name_1 や name_2 には数値が入り、0 で初期化しておきたいと仮定します。

連想配列のループならキー名さえ動的に扱えればいいので以下のように定義できます。

キーの定義の仕方は人それぞれなので、自分のお気に入りの書き方か、プロジェクトの既存ソースに合わせておくといいでしょう。

結果はいずれも下の通りです。

StdClassの場合

StdClass の場合も以下のようにできるかな?やってみます。

これだと下のような結果になってしまいます。

StdClass の場合はプロパティ全体を {} で囲む必要があります。

このように定義すれば思った通りの結果になります。

どうしてもダイヤが必要な場合

時間を短縮したい。お店屋さんの生産枠を増やしたい。など、ゲームを進めるうえで、どうしても少しだけダイヤを課金したくなる時ってありますよね。

そんな時は、楽天市場で「itunesカード」を購入すると楽天ポイントの還元があってお得です。

iOS(iPhone)の人に限られてしまいますが、初回購入時に 500 円オフのキャンペーンをしていたり、楽天ポイントも最大で 16 倍とものすごくお得です。

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

App Store & iTunes ギフトカード(3,000円)
価格:3000円(税込、送料無料) (2020/5/24時点)