Π₯ΠΎΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½Ρ Π½Π° ΠΊΠ»Π°ΡΡΠ°Ρ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ , ΠΎΠ½ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΏΠΎΠ»Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°, Π²Π°ΡΠΈΠ°Π½ΡΠ°ΠΌ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ Π½Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
ΠΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡΠΌ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ:
TARGET_CLASS Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ°ΠΌΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ.
Π¦Π΅Π»Π΅Π²ΠΎΠΉ ΡΠΈΠ»ΡΡΡ TARGET_CLASS_CONST Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ.
__CLASS__ ΠΈ __FUNCTION__ Π²Π΅Π΄ΡΡ ΡΠ΅Π±Ρ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ.
ΠΠ°Π³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° ::class Π΄Π»Ρ ΡΠΈΠΏΠ° ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ,
Π²ΠΊΠ»ΡΡΠ°Ρ Π»ΡΠ±ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΡΠ½, ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡ.
ΠΠ°Π³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° ::class Π² ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΠ° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ,
ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½Π° β ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ°.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ Π½Π΅Π»ΡΠ·Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ΅ΡΠ΅Π· ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ new ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ
ReflectionClass::newInstanceWithoutConstructor(). ΠΠ±Π° ΡΠΏΠΎΡΠΎΠ±Π° ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅.
<?php
$clovers = new Suit();
// Error: Cannot instantiate enum Suit
$horseshoes = (new ReflectionClass(Suit::class))->newInstanceWithoutConstructor()
// Error: Cannot instantiate enum Suit