Π‘Π»Π΅Π΄ Π³ΠΎΠ΄ΠΈΠ½Π° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π±Π΅ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½Π° Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ PHP 8.3. ΠΠΎΠ²ΠΈΡΡ ΠΊΠ»ΠΎΠ½ Π²ΠΊΠ»ΡΡΠ²Π° ΡΠ΅ΡΠΈΡ ΠΎΡ Π½ΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π°ΡΡΡΠ°Π²Π°Ρ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΠ°.
ΠΠ»ΡΡΠΎΠ²ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² PHP 8.3:
- ΠΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΊΠ»ΠΎΠ½ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΊΠ»Π°Ρ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° Ρ Π°ΡΡΠΈΠ±ΡΡΠ° βΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅β. ΠΠ°ΠΌΡΠ½Π°ΡΠ° Π½Π° ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π° ΡΠ°ΠΌΠΎ Π²ΡΠ² ΡΡΠ½ΠΊΡΠΈΡΡΠ° β__cloneβ: readonly class Post { public function __construct( public DateTime $createdAt, ) {} public function __clone() { $this->createdAt = new DateTime(); // ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΡΠΎ "createdAt" Π΅ ΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅. }}
- ΠΡΠΈΠ³ΡΡΠ΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΈ Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π·Π° ΡΠΈΠΏ Π² ΠΊΠ»Π°ΡΠΎΠ²Π΅, Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΈ ΠΈΠ·Π±ΡΠΎΡΠ²Π°Π½ΠΈΡ: class Foo { const string BAR = 'baz'; }
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π°ΡΡΠΈΠ±ΡΡΠ° β#[Override]β, Ρ ΠΊΠΎΠΉΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ½ΡΠΎΡΠΌΠΈΡΠ° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°, ΡΠ΅ ΠΌΠ°ΡΠΊΠΈΡΠ°Π½ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π·Π°ΠΌΠ΅ΡΡΠ²Π° Π½ΡΠΊΠΎΠΉ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄. ΠΠΊΠΎ Π½ΡΠΌΠ° ΠΎΡΠΌΡΠ½Π°, ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΡΡ ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ Π³ΡΠ΅ΡΠΊΠ°.
- ΠΡΠΎΠΌΠ΅Π½Π΅Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»Π½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΊΠ°ΡΠΎ ΠΈΠ½Π΄Π΅ΠΊΡ Π½Π° ΠΌΠ°ΡΠΈΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ Ρ Π½ΠΎΠΌΠ΅Ρ β-5β ΠΊΡΠΌ ΠΏΡΠ°Π·Π΅Π½ ΠΌΠ°ΡΠΈΠ² ΠΈ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π΄ΡΡΠ³ Π΅Π»Π΅ΠΌΠ΅Π½Ρ, ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° Π²ΡΠΎΡΠΈΡΡ Π΅Π»Π΅ΠΌΠ΅Π½Ρ Π±Π΅ΡΠ΅ Π·Π°ΠΏΠΈΡΠ°Π½ Ρ ΠΈΠ½Π΄Π΅ΠΊΡ β0β, Π½ΠΎ Π·Π°ΠΏΠΎΡΠ²Π°ΠΉΠΊΠΈ ΠΎΡ Π²Π΅ΡΡΠΈΡ PHP 8.3 ΡΠΎΠΉ ΡΠ΅ Π±ΡΠ΄Π΅ Π·Π°ΠΏΠΈΡΠ°Π½ Ρ ΠΈΠ½Π΄Π΅ΠΊΡ β-4β . $ΠΌΠ°ΡΠΈΠ² = []; $ΠΌΠ°ΡΠΈΠ²[-5] = 'a'; $ΠΌΠ°ΡΠΈΠ²[] = 'b'; var_export($ΠΌΠ°ΡΠΈΠ²); // ΠΠ΅ΡΠ΅ ΠΌΠ°ΡΠΈΠ² (-5 => 'a', 0 => 'b') // Π‘ΡΠ°Π½Π° ΠΌΠ°ΡΠΈΠ² (-5 => 'a', -4 => 'b')
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΈ ΠΊΠ»Π°ΡΠΎΠ²Π΅ Π² ΡΠ΅ΠΆΠΈΠΌ ΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅: $class = new readonly class { public function __construct( public string $foo = 'bar', ) {} };
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΡΡΠ½ΠΊΡΠΈΡ json_validate() Π·Π° Π±ΡΡΠ·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π΄Π°Π»ΠΈ Π΄Π°Π΄Π΅Π½ Π½ΠΈΠ· Π΅ Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ JSON, Π±Π΅Π· Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅. json_validate(Π½ΠΈΠ· $json, int $depth = 512, int $flags = 0): bool
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° Π½ΠΎΠ²ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ ΠΊΡΠΌ ΠΊΠ»Π°ΡΠ° Randomizer, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ API Π½Π° Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠ΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΠΈ ΡΠΈΡΠ»Π° ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡΠΈ: getBytesFromString Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π½ΠΈΠ· Ρ Π΄Π°Π΄Π΅Π½ ΡΠ°Π·ΠΌΠ΅Ρ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π² ΡΠ»ΡΡΠ°Π΅Π½ ΡΠ΅Π΄ Π·Π½Π°ΡΠΈΡΠ΅, ΠΏΡΠΈΡΡΡΡΠ²Π°ΡΠΈ Π² Π΄ΡΡΠ³ Π½ΠΈΠ·; getFloat ΠΈ nextFloat Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΡΠΈΡΠ»ΠΎ Ρ ΠΏΠ»Π°Π²Π°ΡΠ° Π·Π°ΠΏΠ΅ΡΠ°Ρ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠΏΠ°Π΄Π° Π² ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅Π½ ΠΊΠ»Π°Ρ: class Foo { const BAR = 'bar'; } $name = 'ΠΠΠ '; // ΠΡΠ΅Π΄ΠΈ, Π·Π° Π΄Π° ΠΈΠ·Π²Π»Π΅ΡΠ΅ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°ΡΠ° BAR, ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ°ΡΠ΅ constant(Foo::class . '::' . $name); // Π‘Π΅Π³Π° ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΠΎΡΠ΅ΡΠ΅ Foo::{$name};
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (DateMalformedIntervalStringException, DateInvalidOperationException, DateRangeError) Π² ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, Π²ΡΠ·Π½ΠΈΠΊΠ²Π°ΡΠΈ ΠΏΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Ρ Π΄Π°ΡΠΈ ΠΈ ΡΠ°Ρ.
- ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π³ΡΠ΅ΡΠΊΠΈ, Π²ΡΠ·Π½ΠΈΠΊΠ²Π°ΡΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π²ΡΠ² ΡΡΠ½ΠΊΡΠΈΡΡΠ° unserialize(). Π ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ unserialize() Π²Π΅ΡΠ΅ ΠΈΠ·Π΄Π°Π²Π° E_WARNING Π²ΠΌΠ΅ΡΡΠΎ E_NOTICE.
- ΠΠ°ΠΏΡΠ°Π²Π΅Π½ΠΈ ΡΠ° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π²ΡΠ² ΡΡΠ½ΠΊΡΠΈΡΡΠ° range(). ΠΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ° ΠΏΡΠΈ ΠΎΠΏΠΈΡ Π·Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ, ΡΠ΅ΡΡΡΡΠΈ ΠΈΠ»ΠΈ ΠΌΠ°ΡΠΈΠ²ΠΈ Π² ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ Π³ΡΠ°Π½ΠΈΡΠΈ Π½Π° ΠΎΠ±Ρ Π²Π°Ρ, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΏΡΠΈ ΠΏΠΎΡΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ° $step ΠΈΠ»ΠΈ Π½Π΅Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π² ΠΊΠΎΠΉΡΠΎ ΠΈ Π΄Π° Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ. Π‘ΠΏΠΈΡΡΠΊ ΡΡΡ Π·Π½Π°ΡΠΈ Π²Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·Π²Π΅Π΄Π΅Π½ ΠΏΡΠΈ ΡΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΈΡΠ»Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ βΠ΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½('5', 'z')").
- ΠΡΠΎΠΌΠ΅Π½Π΅Π½ΠΎ Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ·Π½Π°ΡΠΈ ΡΡΡ ΡΡΠ°ΡΠΈΡΠ½ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΠΊΠΎΠΈΡΠΎ ΡΠ΅Π³Π° Π·Π°ΠΌΠ΅ΡΡΠ²Π°Ρ ΡΡΠ°ΡΠΈΡΠ½ΠΈΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°, Π½Π°ΡΠ»Π΅Π΄Π΅Π½ΠΈ ΠΎΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΠΊΠΈΡ ΠΊΠ»Π°Ρ.
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π·Π° Π·Π°ΡΠΈΡΠ° ΠΎΡ ΠΏΡΠ΅ΠΏΡΠ»Π²Π°Π½Π΅ Π½Π° ΡΡΠ΅ΠΊΠ°. ΠΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΈΡΠ΅ zend.max_allowed_stack_size ΠΈ zend.reserved_stack_size ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΊΡΠΌ ini ΡΠ°ΠΉΠ»Π°, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠΉΠΊΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΈΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ ΠΈ Π·Π°ΠΏΠ°Π·Π΅Π½ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° ΡΡΠ΅ΠΊΠ°. ΠΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° ΡΠ΅ ΡΠ΅ ΡΡΠΈΠ½Π΅ ΠΏΡΠΈ Π½Π°Π±Π»ΠΈΠΆΠ°Π²Π°Π½Π΅ Π½Π° ΠΈΠ·ΡΠ΅ΡΠΏΠ²Π°Π½Π΅ Π½Π° ΡΡΠ΅ΠΊΠ°, ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΠ΅ΠΊΡΡ Π΅ ΠΏΡΠ»Π΅Π½ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΡΠ°Π·Π»ΠΈΠΊΠ°ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ zend.max_allowed_stack_size ΠΈ zend.reserved_stack_size (ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ ΡΠΏΡΠ΅, ΠΏΡΠ΅Π΄ΠΈ Π΄Π° Π²ΡΠ·Π½ΠΈΠΊΠ½Π΅ Π³ΡΠ΅ΡΠΊΠ° Π² ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΈΡΠ°Π½Π΅ΡΠΎ). ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° zend.max_allowed_stack_size Π΅ Π·Π°Π΄Π°Π΄Π΅Π½Π° Π½Π° 0 (0βΡΠ°Π·ΠΌΠ΅ΡΡΡ ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ; Π·Π° Π΄Π° Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ Π½Π° -1).
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° Π½ΠΎΠ²ΠΈ POSIX ΡΡΠ½ΠΊΡΠΈΠΈ posix_sysconf(), posix_pathconf(), posix_fpathconf() ΠΈ posix_eaccess().
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΡΡΠ½ΠΊΡΠΈΡΡΠ° mb_str_pad, ΠΊΠΎΡΡΠΎ Π΅ Π°Π½Π°Π»ΠΎΠ³ Π½Π° string ΡΡΠ½ΠΊΡΠΈΡΡΠ° str_pad(), ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Ρ ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡΠΎΠ²ΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΠ°ΡΠΎ UTF-8.
- ΠΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π²ΠΈ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ Π·Π°ΡΠ²Π°ΡΡΠ½ΠΈΡ ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ΠΈ ΠΈ Π΄Π° ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅ ΠΈΠΌΠ΅Π½ΡΠ²Π°Π½ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ ΠΊΡΠΌ ΡΠ΅Π·ΠΈ Π·Π°ΡΠ²Π°ΡΡΠ½ΠΈΡ. $test = Π½ΠΎΠ² ΡΠ΅ΡΡ(); $closure = $test->magic(β¦); $closure(a: 'Π·Π΄ΡΠ°Π²Π΅ΠΉ', b: 'ΡΠ²ΡΡ');
- ΠΡΠΎΠΌΠ΅Π½Π΅Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡΠ° Π½Π° ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΈΡΠ΅ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈΡΠ΅. ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ I { public const FOO = 'foo'; } class C implements I { private const FOO = 'foo'; }
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ array_sum(), array_product(), posix_getrlimit(), gc_status(), class_alias(), mysqli_poll(), array_pad() ΠΈ proc_get_status() ΡΠ° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈ.
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ $widths ΠΊΡΠΌ mb_strimwidth() Π΅ ΠΎΡΡ Π²ΡΡΠ»Π΅Π½Π°. ΠΠΎΠ½ΡΡΠ°Π½ΡΠ°ΡΠ° NumberFormatter::TYPE_CURRENCY Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠ°. ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° ldap_connect() Ρ Π΄Π²Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ° $host ΠΈ $port Π΅ ΠΏΡΠ΅ΡΡΡΠ°Π½ΠΎΠ²Π΅Π½Π°. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ°ΡΠ° opcache.consistency_checks Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠ°.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru