ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ
PHP ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ: Π·Π½Π°ΠΊ @,
ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅Π΄ PHP-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ. ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΏΠΎΠ΄Π°Π²ΠΈΡ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠ΅ΡΠΊΡΡ ΠΎΡΠΈΠ±ΠΊΡ,
ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π»ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ
set_error_handler(), Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ,
Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΡ ΠΏΠΎΠ΄Π°Π²ΠΈΠ»ΠΈ.
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅
ΠΠΎ PHP 8.0.0 ΡΡΠ½ΠΊΡΠΈΡ error_reporting()
ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ Π²Π½ΡΡΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π»Π° Π΄Π»Ρ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄Π°Π²ΠΈΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ @, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0.
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ PHP 8.0.0 ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ:
E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR | E_USER_ERROR | E_RECOVERABLE_ERROR | E_PARSE.
Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π»ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅,
Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅ Ρ ΠΊΠ»ΡΡΠΎΠΌ "message" Π² ΠΌΠ°ΡΡΠΈΠ²Π΅,
ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ error_get_last().
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠ΅,
ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π»ΡΡΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π·Π°ΡΠ°Π½Π΅Π΅.
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠ΅Π΄Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ° ΡΡΠΈΡΡΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°
<?php
$my_file = @file('non_existent_file') or
die("ΠΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ ΡΠ°ΠΉΠ»Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ°: '" . error_get_last()['message'] . "'");
?>
ΠΡΠΈΠΌΠ΅Ρ #2 ΠΠΎΠ΄Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ
<?php
// ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ
$value = @$cache[$key];
// Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡΡ, Π΅ΡΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ² Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠ»ΡΡ $key
?>
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅:
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ @ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ
Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ.
ΠΡΠΎΡΡΠΎΠ΅ ΡΠΌΠΏΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ: ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ @ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ,
ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΡΠΈΡΠ»ΡΡΡΡΡ ΠΊΠ°ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ @ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ
ΠΏΠ΅ΡΠ΅Π΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ,
Π²ΡΠ·ΠΎΠ²ΠΎΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ include ΠΈ Ρ. Π΄.
ΠΡΠΈ ΡΡΠΎΠΌ Π½Π΅Π»ΡΠ·Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ
ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡΠ°, ΡΡΠ»ΠΎΠ²Π½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅
if, ΡΠΈΠΊΠ»ΠΎΠΌ foreach ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π²ΡΡΠΈΡΠ»ΡΡΡΡΡ ΠΊΠ°ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅
ΠΠΎ PHP 8.0.0 ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ @ ΠΏΠΎΠ΄Π°Π²Π»ΡΠ» ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ,
ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΠ°.
Π‘ΠΊΡΠΈΠΏΡ Π·Π°Π²Π΅ΡΡΠ°Π» Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±Π΅Π· ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΏΡΠΈΡΠΈΠ½Ρ,
Π΅ΡΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ @ ΡΠΊΠ°Π·ΡΠ²Π°Π»ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ,
ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ, Π½Π΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΈΠ»ΠΈ Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄ΠΎΠΏΡΡΡΠΈΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΊΡ.
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅