ααΆαα ααααααΆαα’αΆααα αααΆααααΌαααααΆααΆααααΈααααΆααΆααααααααααα·ααΈ PHP 8.2 ααααΌαααΆααααα αΆαα ααΆαβα ααβααααΆαβααααΌαβααΆαβαααααβααααΎβαα βααααβααΈ α’α€ ααβαα·α ααα·ααΆα ααΆαα αααααααα·αααααΆααααααααΆααα½α α αΎααααααΆααααΆαααΆααααα α¬ααααααααααΆααααΆαα’αα»αααααα αααα»α PHP 24α
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠΈΠΏΡ Β«falseΒ» ΠΈ Β«nullΒ», ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΏΡΠΈΠ·Π½Π°ΠΊΠ° Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ ΠΈΠ»ΠΈ ΠΏΡΡΡΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π Π°Π½Π΅Π΅ Β«falseΒ» ΠΈ Β«nullΒ» ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ²ΡΠ·ΠΊΠ΅ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Β«string|falseΒ»), Π° ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ: function alwaysFalse(): false { return false; }
- ααΆααααααααααααααΆααααα»αααΆααααααΆααααααΆααααΆααΆαααα’αΆαα ααααααααααααα·αα αααα»αααααΆααααααααα’αΆα ααααΌαααΆααααααααααααααα αααααΆααααΈααααα½αααΆαα·αα’αΆα ααααΆααααααΌαααΆαααα ααΈαα»α ααααααααααααα·ααααΆααααΈαα½ααα’αΆα ααααΌαααΆααααααΆααααΆααΆαααα’αΆα ααα»ααααα₯α‘αΌααααα’αααα’αΆα ααΎαααααααααααααΆααααααααααααααα·ααααΆααααΆααα’αααααα»αααααααα½αα ααΆααααααΆααααα "ααΆαααα’αΆα" αα ααααα·αααααΆααααααΆααΆαααααααααααααααα·ααΈααΆαααααααααΆααααααα ααααΆαααααααα readonly class Post { public function __construct( public string $title, public Author $author, ) {} } $post = new Post(/* β¦ */); $post->unknown = 'αα»α'; // ααα α»αα αα·αα’αΆα αααααΎα dynamic property Post::$unknown
- ΠΠ±ΡΡΠ²Π»Π΅Π½Π° ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅ΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² Π² ΠΊΠ»Π°ΡΡΠ΅ (ΠΊΠ°ΠΊ Β«post->unknownΒ» Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅). Π PHP 9.0 ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ, ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌ Π² ΠΊΠ»Π°ΡΡΠ΅, Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅ (ErrorException). ΠΠ»Π°ΡΡΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ __get ΠΈ __set Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ², ΠΈΠ»ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π² stdClass ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΏΡΠ΅ΠΊΡΠ°ΡΠΈΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΡΠ²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π·Π°ΡΠΈΡΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΎΡ ΡΠΊΡΡΡΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΠ»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΡΡΠ°ΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ Π°ΡΡΠΈΠ±ΡΡ Β«#[AllowDynamicProperties]Β», ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ².
- αααααααααααΆααααα»αααΆααααααααΆαααΆαααααααααΎααα αααα»αααααααααΆααααααα‘α»ααααααΆαααα α»αα ααΆαααΆααα ααααααααΆαααΆααααΆααα’αΆα ααΆααΆαα αΆαααΆα α αα ααααααααααααΆαα’αααΈααα α»ααααααΎαα‘αΎαααααΌαααΆαααααΎαααααααααααααααα·αα ααΆααααααΆααααααΆααΈααΈααΈαααααΆαααΆααααα αΆ αα·αααΌαααααΉααααα’αααα’αα·ααααααα’αααΈαα½αααα α§ααΆα ααα α’αααα’αΆα αααααΆαααΆααααααααααα½ααααα αΌααααααα’αααααααΎααααΆαα ααΆααααααααΆαα αα·αα’αααααα·ααααΆαααΈααΆαααΆαααΆαα ααΆαααααΎααααααα»αααΆα ($foo, #[\SensitiveParameter] $password, $baz) { throw new Exception('Error'); } test('foo', 'password', 'baz'); ααα α»ααααααααααα Uncaught Exception: Error in test.php:8 Stack track: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {main} αααα αααααα»α test.php αα ααΎαααααΆαα 8
- αααααααΆααααα»αααΆααααα½ααααααα’ααααα ααΆααααα’αααααααααααΎαααααα "${var}" αα·α ${(var)} ααααΌαααΆαααα·αααα ααΆαααΆαααααααααΆααααΆααααα½α "{$var}" αα·α "$var" αααααααΎααΆααΌαα ααααΌαααΆααααααΆαα»αα α§ααΆα αααα "ααααΆααα½α {$world}"; ααααααα "ααααΆααα½α $ world"; ααααααα "ααααΆααα½α ${world}"; ααα·αααα ααΆαααααΎ ${} αααα»αααααα’ααααααααΌαααΆαααα·ααα
- ααΆαααα·αααααΆαα α ααΌααααααααααΆαααααααααααααααα’αΆα α α ααΆαααΆαααα "call_user_func($callable)" ααα»αααααα·αααΆααααααΆαα α ααΆααααααα "$callable()": "self::method" "parent::method" "static" ::method "["αααα½αα―α", "αα·ααΈααΆααααα"] ["αͺαα»αααααΆα", "αα·ααΈααΆααααα"] ["αα·αα·αααα", "αα·ααΈααΆααααα"] ["α αααΌ", "αααΆα::αα·ααΈααΆααααα"] [Foo ααααΈ, "αααΆα: :αα·ααΈααΆααααα" ]
- ααΆαα’αα»ααααααΆααααααααααααΈα―αααΆααααααα»ααααααα αα»αααΆαααΌα ααΆ strtolower() αα·α strtoupper() α₯α‘αΌααααααααααααααααααααΈαα½α’αααααα αααα»ααα½α ASCII ααΌα ααΆααααα·αααΎααΆαααααααα ααΌαααααΆα "C" α
ααααα: opennet.ru