ืืืฆืื ืืืืืจืช ืืืืคื ืืจืืฉืื ื ืฉื ืืขื ืฃ ืืืืฉ ืฉื ืฉืคืช ืืชืื ืืช PHP 8.2. ืืืฉืงื ืืชืืื ื ืช ื-24 ืื ืืืืืจ. ืืืืืืฉืื ืืขืืงืจืืื ืฉืืืจ ืืืื ืื ืืืืืงื ืื ืืชืืื ื ืื ืืืืฉืื ื-PHP 8.2:
- ื ืืกืคื ืกืืืื ื ืคืจืืื "false" ื-"null", ืืื ื ืืชื ืืืฉืชืืฉ, ืืืฉื, ืืื ืืืืืืจ ืกืืื ืฉื ืืฉืืื ืขื ืฉืืืื ืื ืขืจื ืจืืง ืขื ืืื ืคืื ืงืฆืื. ืืขืืจ, ื ืืชื ืืื ืืืฉืชืืฉ ื-"false" ื-"null" ืจืง ืืฉืืืื ืขื ืกืืืื ืืืจืื (ืืืืืื, "string|false"), ืื ืืขืช ื ืืชื ืืืฉืชืืฉ ืืื ืื ืคืจื: function alwaysFalse(): false { return false; }
- ื ืืกืคื ืืืืืืช ืืกืื ืืืชื ืืงืจืืื ืืืื. ื ืืชื ืืืืืืจ ืืืคืืื ืื ืืืืืงืืช ืืืื ืคืขื ืืืช ืืืื, ืืืืืจ ืืื ืื ืื ืืืื ืืืื ืื ืืฉืื ืื. ืืขืืจ, ื ืืชื ืืื ืืกืื ืืืคืืื ื ืืืืงื ืืืืืื ืืงืจืืื ืืืื, ืื ืืขืช ืืชื ืืืื ืืืคืขืื ืืฆื ืื ืขืืืจ ืื ืืืคืืื ื ืืืืืงื ืืืช ืืืช. ืฆืืื ืืืื "ืืงืจืืื ืืืื" ืืจืืช ืืืืืงื ืืืกื ืื ืืช ืืืืกืคื ืืืื ืืืช ืฉื ืืืคืืื ืื ืืืืืงื. classonly class Post { public function __construct( ืืืจืืืช ืฆืืืืจืืช $title, Public Author $author, ) {} } $post = new Post(/* โฆ */); $post->unknown = 'ืฉืืื'; // ืฉืืืื: ืื ื ืืชื ืืืฆืืจ ืืืคืืื ืืื ืื Post::$unknown
- ืืืืืืช ืืืฆืืจ ืืืืคื ืืื ืื ืืืคืืื ืื ืืืืืงื ืืืฆืื ืืฉืืืืฉ (ืืื "ืคืืกื->ืื ืืืืข" ืืืืืื ืืืขืื). ื-PHP 9.0, ืืืฉื ืืืืคืืื ืื ืฉืื ืืืืืจื ืืืงืืจ ืืืืืงื ืชืืจืื ืืฉืืืื (ErrorException). ืืืืงืืช ืืืกืคืงืืช ืฉืืืืช __get ื-__set ืืืฆืืจืช ืืืคืืื ืื, ืื ืืืคืืื ืื ืืื ืืืื ื-stdClass ืืืฉืืื ืืขืืื ืืื ืฉืื ืื, ืจืง ืขืืืื ืืจืืืืช ืขื ืืืคืืื ืื ืื ืงืืืืื ืชืืคืกืง ืขื ืื ืช ืืืื ืขื ืืืคืชื ืืฉืืืืืช ื ืกืชืจืืช. ืืื ืืฉืืืจ ืขื ืืงืื ืืืฉื ืคืืขื, ืืืฆืขืช ืืชืืื ื "#[AllowDynamicProperties]", ืืืืคืฉืจืช ืฉืืืืฉ ืืืืคืืื ืื ืืื ืืืื.
- ืกืืคืงื ืืช ืืืืืืช ืืกื ื ืืืืจืืช ืจืืืฉืืช ืืคืื ืืขืงื ืืืกื ืืช ืืืื ืฉืืืื. ื ืืชืืง ืืืืข ืืกืืื ืขืฉืื ืืืืืจืฉ ืืืฉืจ ืืืืข ืขื ืฉืืืืืช ืืืชืจืืฉืืช ื ืฉืื ืืืืืืืืช ืืฉืืจืืชื ืฆื ืฉืืืฉื ืฉืขืืงืืื ืืืจ ืืขืืืช ืืืืืืขืื ืืืคืชืืื ืขืืืื. ืืืืืื, ืืชื ืืืื ืืืืฆืื ืคืจืืืจืื ืืืืขืงื ืืืืืืื ืฉืืืช ืืฉืชืืฉ, ืกืืกืืืืช ืืืฉืชื ื ืกืืืื. function test( $foo, #[\SensitiveParameter] $password, $baz ) { throw new Exception('Error'); } test('foo', 'ืกืืกืื', 'baz'); ืฉืืืื ืงืืื ืืช: ืืจืืื ืฉืื ื ืชืคืกื: ืฉืืืื ื-test.php:8 ืขืงืืืช ืืืกื ืืช: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {main} ื ืืจืง ื-test.php ืืืื ืืจื ื 8
- ืืืืืืช ืืืืืืฃ ืขืจืื ืืฉืชื ืื ืืืืจืืืืช ืืืืฆืขืืช ืืืืืื "${var}" ื-${(var)}" ืืืฆืื ืืฉืืืืฉ. ืืชืืืื ืืืืืคืืช "{$var}" ื-"$var" ืื ืคืืฆืืช ื ืฉืืจื. ืืืืืื: "ืฉืืื {$world}"; ืืกืืจ "ืฉืืื $ืขืืื"; ืืืฉืืจ "ืฉืืื ${ืขืืื}"; ืืืฆื ืืฉืืืืฉ: ืืฉืืืืฉ ื-${} ืืืืจืืืืช ืืืฆื ืืฉืืืืฉ
- ื ืืชื ืื ืืืชืงืฉืจืืช ื ืชืืืื ืืืงืืช ืฉื ืืชื ืืงืจืื ืืืืฆืขืืช "call_user_func($callable)" ืืืฆืื ืืฉืืืืฉ, ืื ืืื ื ืชืืืืื ืืงืจืืื ืืฆืืจื "$callable()": "self::method" "parent::method" "static :: method" ["ืขืฆืื", "ืฉืืื"] ["ืืืจื", "ืฉืืื"] ["ืกืืื", "ืฉืืื"] ["Foo", "Bar::method"] [ืืืฉ Foo, "Bar: :method" "]
- ืืืืขื ืืืจืช ืืงืจื ืืื ืชืืืช ืืงืืื. ืคืื ืงืฆืืืช ืืื strtolower() ื-strtoupper() ืืขืช ืชืืื ืืืืจืืช ืืช ืืืืชืืืช ืฉื ืชืืืื ืืืืื ASCII, ืืื ืืขืช ืืืืจืช ืืืงืื ื-"C".
ืืงืืจ: OpenNet.ru