PHP では、クラスが事前に準備されておらず、未定義のクラスのオブジェクトを作成する必要がある場合、次の 3 つのメソッドを使用できます。1. "new stdClass()"、"new class{}(object) " と "(オブジェクト)[]"。以下、編集部が詳しくご紹介します。
#PHP では、事前にクラスが用意されておらず、未定義クラスのオブジェクトを作成する必要がある場合、次の 3 つの方法を使用できます。$a = new stdClass(); var_dump($a);新しいクラス{}?一定期間開発を行っており、フロントエンド JS やその他の動的言語に触れたことがある人は、これが匿名クラスであることを推測できるはずです。一般にパラメータ オブジェクトで非常に一般的です。作成するオブジェクトには属性メソッドを含めることができます。
$b = new class{ public $p = 1; }; var_dump($b);最後に見られるのは、オブジェクトを生成するためにオブジェクトに強制的に配列を使用することです。
$c = (object)[ 'p' => 1 ]; var_dump($c);明らかに、配列強制によって生成されたオブジェクトは最初のオブジェクトと同じ型であり、属性を持つことも持たないこともできます。ただしメソッドは取れません。 配列強制メソッドによって生成されたオブジェクトは、非常に直観的で理解しやすいものです。単に属性オブジェクトをカプセル化するだけの場合は、この方法を使用する方がよりエレガントで快適になります。複雑なオブジェクトの生成は、匿名クラスを使用して生成できます。プレースホルダーのみが必要なオブジェクトの場合は、stdClass メソッドを使用できますが、もちろん、空の配列を使用することも非常に便利です。 配列の強制は型変換の規則に従う必要があることに注意してください。たとえば、数字の添え字の問題。 日常の開発では、いくつかのインターフェイスやデータベース ORM フレームワークを使用するときに、これらの関数をよく使用します。たとえば、一部の ORM フレームワークの挿入と変更には、属性のみを含むオブジェクトの受信が必要です。このとき、クラステンプレートを完全に定義しなくても、上記の方法を利用することで柔軟にオブジェクトを生成することができます。 テスト コード:
https://github.com/zhangyue0503/dev-blog/blob/master/php/201910/source/%E4%BC%98%E9%9B%85%E5%9C%B0%E5%88%9B%E5%BB%BA%E6%9C%AA%E5%AE%9A%E4%B9%89PHP%E5%AF%B9%E8%B1%A1.php推奨学習:
php ビデオ チュートリアル
以上が未定義クラスのPHPオブジェクトの作成方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。