ΠΡΠ΅ΠΌΡ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ (hrtime()) Π² macOS ΡΠ΅ΠΏΠ΅ΡΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠΉ
clock_gettime_nsec_np(CLOCK_UPTIME_RAW) API Π²ΠΌΠ΅ΡΡΠΎ
mach_absolute_time().
ΠΠΏΡΠΈΡ -z ΠΈΠ»ΠΈ --zend-extension ΡΠ΄Π°Π»Π΅Π½Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π»Π°. ΠΠΌΠ΅ΡΡΠΎ Π½Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ -d zend_extension=[path].
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΡΡ ΠΈΠ· Π±ΠΎΠ»ΡΡΠΈΡ ΡΡΠΎΠ»Π±ΡΠΎΠ². ΠΠΌΠ΅ΡΡΠΎ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² ΠΏΠΎ 256 Π±Π°ΠΉΡ PDO_ODBC Π±ΡΠ΄Π΅Ρ ΠΏΡΡΠ°ΡΡΡΡ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ Π±Π»ΠΎΠΊΠΈ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°; Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΡΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ Π·Π° Π²ΡΡΠ΅ΡΠΎΠΌ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΡ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ² Π½Π° ΡΡΡΠΎΠΊΡ. ΠΡΠ°ΠΉΠ²Π΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ SQL_NO_TOTAL Π² SQLGetData, ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π»ΡΡΡΠ΅.
ΠΠΎΠΏΡΡΠΊΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ cli_set_process_title() ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅, Π° Π½Π΅ ΠΊ ΠΌΠΎΠ»ΡΠ°Π»ΠΈΠ²ΠΎΠΌΡ ΡΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΡ.
ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½ΠΎΠ²Π°Ρ ΠΎΠΏΡΠΈΡ --ini=diff Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° INI-Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΠΎΡΠ»ΠΈΡΠ½ΠΎΠΉ ΠΎΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
FPM Ρ httpd ProxyPass ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΡΠ΅Ρ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ ΠΊ ΡΠΊΡΠΈΠΏΡΡ. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° INI-Π½Π°ΡΡΡΠΎΠΉΠΊΠ° fastcgi.script_path_encoded, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΆΡΡΠ½Π°Π»Π° Π΄ΠΎΡΡΡΠΏΠ° FPM ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΠΈΡΡΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ log_limit.
Π€ΡΠ½ΠΊΡΠΈΡ grapheme_extract() ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ $next ΠΏΡΠΈ ΠΏΡΠΎΠΏΡΡΠΊΠ΅ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ
Π½Π°ΡΠ°Π»ΡΠ½ΡΡ
Π±Π°ΠΉΡΠΎΠ².
Π Π°Π½Π΅Π΅ Π±ΡΠ»ΠΈ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠ³Π΄Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠΊΠ°Π·ΡΠ²Π°Π»ΠΎ Π½Π° Π½Π°ΡΠ°Π»ΠΎ Π³ΡΠ°Π½ΠΈΡΡ Π³ΡΠ°ΡΠ΅ΠΌΠ°,
Π° Π½Π΅ Π½Π° ΠΊΠΎΠ½Π΅Ρ.
ΠΠ· ΡΠΈΠ³Π½Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ transliterator_get_error_code(),
transliterator_get_error_message(),
TransLiterator::getErrorCode() ΠΈ
TransLiterator::getErrorMessage() ΡΠ±ΡΠ°Π½ΠΎ
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ false.
ΠΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ false Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡΠ»ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ $locale:
grapheme_strpos(),
grapheme_stripos(),
grapheme_strrpos(),
grapheme_strripos(),
grapheme_substr(),
grapheme_strstr() ΠΈ
grapheme_stristr().
Π€ΡΠ½ΠΊΡΠΈΡ ldap_get_option() ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅
null, ΠΊΠ°ΠΊ ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ldap_set_option(),
ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ
ΠΎΠΏΡΠΈΠΉ.
Π’ΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ libxml_set_external_entity_loader() ΠΈΠ·ΠΌΠ΅Π½ΡΠ½ Π½Π° true.
ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ $digest_algo
ΡΡΠ½ΠΊΡΠΈΡΠΌ openssl_public_encrypt() ΠΈ
openssl_private_decrypt(),
ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ Ρ
Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
Π΄Π»Ρ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ OAEP.
ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ $padding
ΡΡΠ½ΠΊΡΠΈΡΠΌ openssl_sign() ΠΈ
openssl_verify(),
openssl_sign() and openssl_verify()
have a new parameter $padding,
ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅
Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ ΠΏΠΎΠ΄ΠΊΠ»Π°Π΄ΠΊΡ RSA PSS.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ $cipher_algo ΡΡΠ½ΠΊΡΠΈΠΈ openssl_cms_encrypt()
ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΠΎΠΊΠΎΠΉ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠΈΡΡΠ°.
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ AES GCM Π΄Π»Ρ
Π΄Π°Π½Π½ΡΡ
Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠ΅ΠΉ.
Π’ΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ pcntl_exec() ΠΈΠ·ΠΌΠ΅Π½ΡΠ½ Π½Π° false.
Π€ΡΠ½ΠΊΡΠΈΡ pcntl_waitid() ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ
resource_usage Π΄Π»Ρ ΡΠ±ΠΎΡΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΡ
ΠΌΠ΅ΡΡΠΈΠΊ ΠΎ Π΄ΠΎΡΠ΅ΡΠ½Π΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅.
ΠΠ΅ΡΠΎΠ΄ Pdo\Pgsql::copyFromArray() ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠΈΠΏΠ° iterable.
ΠΠ΅ΡΠΎΠ΄ Pdo\Pgsql::setAttribute() ΠΈ
Pdo\Pgsql::prepare() ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ
ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ PDO::ATTR_PREFETCH Π² 0,
ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ Π² ΡΠ΅ΠΆΠΈΠΌ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π²ΡΠ±ΠΎΡΠΊΠΈ.
Π ΡΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ.
Π€ΡΠ½ΠΊΡΠΈΡ pg_copy_from() ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠΈΠΏΠ° iterable.
Π€ΡΠ½ΠΊΡΠΈΡ pg_connect() ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ,
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ connection_string Π½ΡΠ»Π΅Π²ΠΎΠΉ Π±Π°ΠΉΡ.
Π€ΡΠ½ΠΊΡΠΈΡ pg_close_stmt() ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ,
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ statement_name Π½ΡΠ»Π΅Π²ΠΎΠΉ Π±Π°ΠΉΡ.
Π€ΡΠ½ΠΊΡΠΈΡ posix_ttyname() ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ last_error Π² EBADF ΠΏΡΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠΈ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ°.
Π€ΡΠ½ΠΊΡΠΈΡ posix_isatty() Π²ΡΠ΄Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΡΡΠΎΠ²Π½Ρ E_WARNING
ΠΏΡΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠΈ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ°.
Π€ΡΠ½ΠΊΡΠΈΡ posix_fpathconf() ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ,
ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ last_error Π² EBADF ΠΈ Π²ΡΠ΄Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΡΡΠΎΠ²Π½Ρ E_WARNING.
ΠΡΠ²ΠΎΠ΄ ΠΌΠ΅ΡΠΎΠ΄Π° ReflectionClass::__toString() Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΠΈΠ·ΠΌΠ΅Π½ΡΠ½, ΡΡΠΎΠ±Ρ Π»ΡΡΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΊΠ»Π°ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ΠΌ, Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠ²Π»ΡΡΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ, Π° Π½Π΅ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°.
ΠΡΠ²ΠΎΠ΄ ΠΌΠ΅ΡΠΎΠ΄Π° ReflectionProperty::__toString() Π΄Π»Ρ ΡΠ²ΠΎΠΉΡΡΠ² Ρ Ρ ΡΠΊΠ°ΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ½, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ, Ρ ΠΊΠ°ΠΊΠΈΡ Ρ ΡΠΊΠΎΠ² Π΅ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ, ΡΠ²Π»ΡΡΡΡΡ Π»ΠΈ ΡΡΠΈ Ρ ΡΠΊΠΈ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌ. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° Π²ΡΠ²ΠΎΠ΄ ΠΌΠ΅ΡΠΎΠ΄Π° ReflectionClass::__toString(), ΠΊΠΎΠ³Π΄Π° ΠΊΠ»Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° Ρ Ρ ΡΠΊΠ°ΠΌΠΈ.
Π€ΡΠ½ΠΊΡΠΈΠΈ socket_create()/socket_bind()
ΠΌΠΎΠ³ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΠΊΠ΅ΡΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° AF_PACKET.
Π€ΡΠ½ΠΊΡΠΈΡ socket_getsockname() ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°
ΠΈ Π΅Π³ΠΎ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΠΊΠ΅ΡΠ° AF_PACKET.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ $use_include_path ΡΡΠ½ΠΊΡΠΈΠΉ gzfile(),
gzopen() ΠΈ readgzfile() ΠΈΠ·ΠΌΠ΅Π½ΡΠ½
Ρ ΡΠ΅Π»ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° (int) Π½Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (bool).
Π€ΡΠ½ΠΊΡΠΈΠΈ gzfile(), gzopen() ΠΈ readgzfile() ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΠΎΡΠΎΠΊΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
Π€ΡΠ½ΠΊΡΠΈΡ curl_setopt() ΡΠΎ
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΡΠΈΠΈ CURLOPT_FOLLOWLOCATION
Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π΅ ΠΊΠ°ΠΊ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π° ΠΊΠ°ΠΊ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ
CURLFOLLOW_OBEYCODE ΠΈ CURLFOLLOW_FIRSTONLY.
ΠΠ±Π½ΠΎΠ²Π»ΡΠ½ ΡΠ°ΠΉΠ» Ρ Π²Π΅ΡΡΠΈΠΈ 5.45 Π΄ΠΎ 5.46.
Π’ΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ finfo_close() Π±ΡΠ» ΠΈΠ·ΠΌΠ΅Π½ΡΠ½ Π½Π° true Π²ΠΌΠ΅ΡΡΠΎ bool.
ΠΠ½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΡΠΈΠ±ΠΎΠΊ Intl Π±ΡΠ» ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½, ΡΡΠΎΠ±Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΡΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΡΡΠ°ΡΡΠΎΠΊ ΠΊΠΎΠ΄Π° Π²ΡΠ·Π²Π°Π» ΡΡ ΠΈΠ»ΠΈ ΠΈΠ½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ext/date ΡΠ΅ΠΏΠ΅ΡΡ Π·Π°ΠΊΠ»ΡΡΠ΅Π½Ρ Π² IntlException.
ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π²ΡΠ΅Π³Π΄Π° Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ lexbor. ΠΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ lexbor, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ»Π° ΠΎΡΠ΄Π΅Π»Π΅Π½Π° ΠΎΡ ext/dom Π΄Π»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² Π΄ΡΡΠ³ΠΈΡ ΠΌΠΎΠ΄ΡΠ»ΡΡ . ΠΠΎΠ²ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π½Π°ΠΏΡΡΠΌΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ.
ΠΠΎΠ΄ΡΠ»Ρ Opcache ΡΠ΅ΠΏΠ΅ΡΡ Π²ΡΠ΅Π³Π΄Π° Π²ΡΡΡΠΎΠ΅Π½ Π² Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» PHP ΠΈ Π²ΡΠ΅Π³Π΄Π° Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ. INI-Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ opcache.enable ΠΈ opcache.enable_cli ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡΡΡ.
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° pcre2lib Ρ Π²Π΅ΡΡΠΈΠΈ 10.44 Π΄ΠΎ 10.46.
Π£Π²Π΅Π»ΠΈΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Ρ 3.7.7 Π΄ΠΎ 3.7.17.
Π€ΡΠ½ΠΊΡΠΈΠΈ readline_add_history(), readline_clear_history() ΠΈ readline_callback_handler_install() ΡΠ΅ΠΏΠ΅ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠΈΠΏ true Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ bool.
Π‘ ΠΊΠ»Π°ΡΡΠ° ReflectionConstant ΡΠ½ΡΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ final.
Π ΡΠ°ΠΉΠ»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ fatal_error_backtraces. ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π»ΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΡ.
Π INI-ΡΠ°ΠΉΠ»Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ max_memory_limit. ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π³ΡΠ°Π½ΠΈΡΡ, ΠΏΡΠ΅Π²ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ memory_limit ΡΠΏΡΠΎΠ²ΠΎΡΠΈΡΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π΅ memory_limit ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ max_memory_limit, Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ max_memory_limit Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ -1, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ½ΠΈΠΌΠ°Π΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° PHP, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ memory_limit Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΠΈ Π½Π° ΡΡΠ°ΠΏΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ opcache.file_cache_read_only. ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ ΡΠ°Π±ΠΎΡΡ
Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠΌ ΠΊΠ΅ΡΠ° Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° opcache.file_cache,
Π² ΡΠ΅ΠΆΠΈΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ. ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Docker-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ,
Π²Π½ΡΡΡΠΈ ΠΊΠΎΡΠΎΡΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π»ΠΈ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ.
ΠΠ»Ρ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π΄ΠΈΡΠΊΠΎΠ²ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΈ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° Π¦Π ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ:
opcache.validate_timestamps=0, opcache.enable_file_override=1 ΠΈ opcache.file_cache_consistency_checks=0.
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅Ρ ΠΊΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π»Π° Π΄ΡΡΠ³Π°Ρ ΡΠ±ΠΎΡΠΊΠ° PHP, ΠΏΠΎ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΏΡΡΠΈ ΠΊ ΡΠ°ΠΉΠ»Ρ ΠΈΠ»ΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ Π½Π°Π±ΠΎΡ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ.
ΠΡΠ΅Π΄ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ opcache.jit_hot_loop ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°Π²Π½ΠΎ ΠΏΡΠΎΡΡΠΎΠΌΡ ΡΠΈΡΠ»Ρ 61; ΠΏΡΠΎΡΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Ρ ΠΌΠ΅Π½ΡΡΠ΅ΠΉ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΡ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΊΡΠ°ΡΠ½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠΉ ΡΠΈΠΊΠ»Π°.
PHP ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΎΠΎΠ±ΡΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅, Π΅ΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ opcache.memory_consumption ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ OPcache; ΡΠ°Π½ΡΡΠ΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Π½Π΅ Π²ΡΠ΄Π°Π²Π°Π»ΠΎΡΡ, Π° Π² ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ PHP Π²ΡΠ²ΠΎΠ΄ΠΈΠ»ΠΎΡΡ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ openssl.libctx Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΠΈΠΏΠ° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ OpenSSL. ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΠΈΠ±ΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΉ libctx Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°, Π»ΠΈΠ±ΠΎ ΠΎΠ΄ΠΈΠ½ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ) libctx.
Π£Π΄Π°Π»Π΅Π½Ρ OP-ΠΊΠΎΠ΄Ρ Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎΡΡΠΈ Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ,
Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΡΠ°Π±Π»ΠΎΠ½Π° match(true).
ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ OPcode Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΉ
=== [] ΠΈ !== [].
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΡΡΠ΅Π΅.
Π§Π°ΡΡΠΈ ΠΊΠΎΠ΄Π°, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ SSE2, Π±ΡΠ»ΠΈ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π½Ρ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ SIMD Ρ ARM NEON.
ΠΠ²Π΅Π΄Π΅Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° TAILCALL, Π²ΠΊΠ»ΡΡΠ΅Π½Π½Π°Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Ρ Clang>=19 Π½Π° x86_64 ΠΈΠ»ΠΈ aarch64. ΠΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° TAILCALL ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΊ ΠΆΠ΅ Π±ΡΡΡΡΠΎ, ΠΊΠ°ΠΊ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° HYBRID, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Ρ GCC. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ Π±ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ PHP, ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Ρ Clang>=19, ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ°ΠΊ ΠΆΠ΅ Π±ΡΡΡΡΠΎ, ΠΊΠ°ΠΊ Π±ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Ρ GCC. ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ CALL, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΆΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»ΡΡΡΠΈΠ»Π°ΡΡ.
ΠΠ½ΡΡΡΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π»ΠΈΡΠ½ΠΈΠ΅ ΠΊΠΎΠΏΠΈΠΈ ΡΡΡΠΎΠΊ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ.
Π§Π°ΡΡΠΈ ΠΊΠΎΠ΄Π°, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ SSE2, Π±ΡΠ»ΠΈ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π½Ρ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ SIMD Ρ ARM NEON.
Π£Π»ΡΡΡΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ TLS Π² ΠΊΠΎΠ΄Π΅ JIT Π² ΡΠ±ΠΎΡΠΊΠ°Ρ Π±Π΅Π· Glibc.
Π£Π»ΡΡΡΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²:
Π£Π»ΡΡΡΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² SplFixedArray.
Π£Π»ΡΡΡΠ΅Π½Π½Π°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ Ρ callback-ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ (array_find(), array_filter(), array_map(), usort(), ...).
Π£Π»ΡΡΡΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ urlencode() ΠΈ rawurlencode().
Π£Π»ΡΡΡΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ unpack() Ρ Π±Π΅Π·ΡΠΌΡΠ½Π½ΡΠΌΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΡΠΌΠΈ Π·Π° ΡΡΡΡ ΠΎΡΠΊΠ°Π·Π° ΠΎΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΡΠΎΠΊ ΠΈ ΠΈΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°.
Π£Π»ΡΡΡΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ pack().
ΠΠ΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ array_chunk().