stdClassって一体何者なんだ?! by 寺西 帝乃

PHPerKaigi 2023
採択
2023/03/24 17:15〜
Track A
LT(5分)

stdClassって一体何者なんだ?!

dainabook 寺西 帝乃 dainabook

PHP8.2から動的プロパティが非推奨となり将来的には禁止となることは、多くのPHPerに衝撃を与えたことでしょう。
そのような中で、例外的に動的プロパティが認められた特殊なクラスが存在します。
それが「stdClass」です。
このクラスは一体何者なのでしょう。
公式の説明を見ると「PHP には全てのクラスの親となる基底クラスの概念がないため、 このクラスは基底クラスではありません。」と記されています。

...では一体何なのか?!
現代的なコーディングにおいて動的プロパティは良くないとされ、PHPが徐々に厳格なコーディングスタイルを取り入れていく中で、なぜstdClassだけが許されているのでしょうか。
ここではstdClassの機能と用途からその正体に迫り、今後のコーディングにおいてstdClassは使って良いものなのかを説明していきます。