ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки

Онлайн-тСстСры PHP, JS ΠΈ CSS ΠΊΠΎΠ΄Π°

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки

ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ инструмСнты Π² складчину программиста, Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, тСстировщика. Π­Ρ‚ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½-тСстСры ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ваш Π²Π΅Π±-ΠΊΠΎΠ΄ Π΅Ρ‰Π΅ Π΄ΠΎ внСдрСния Π½Π° сайтС, Π½Π°ΠΉΡ‚ΠΈ ошибки ΠΈ Β«ΠΏΠΎΡ„ΠΈΠΊΡΠΈΡ‚ΡŒΒ» Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π•ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΈΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ PHP ΠΈ Π΄Π°ΠΆΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠ΄, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ CSS ΠΈΠ»ΠΈ Java Script.

PHPTester

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки

ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свой php-ΠΊΠΎΠ΄ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½ прямо Π² вашСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Π±Π΅Π· использования Π²Π΅Π±-сСрвСра. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ вСрсии PHP: 5.5, 5.6, 7.0

Бсылка: //phptester.net/

PHP Sandbox

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки

ΠžΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ΡΡ ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ PHP β€” ΠΎΡ‚ 4.4.9 Π΄ΠΎ 7.4.

Бсылка: http://sandbox.onlinephpfunctions.com/

PHP Online Test

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки

Π£Π΄ΠΎΠ±Π½Ρ‹ΠΉ тСстСр с приятным ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ Π² сСбС ΠΌΠ½ΠΎΠ³ΠΎ Π΅Ρ‰Π΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… плюшСк, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ PHP Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹, API, Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€Ρ‹/энкодСры. МнС ΠΎΠ½ ΠΎΡ‡Π΅Π½ΡŒ понравился, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ.

Бсылка: //phpfiddle.org/

PHP syntax checker

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки

ΠžΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ синтаксиса Π² PHP-ΠΊΠΎΠ΄Π΅. ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΈΠ· Ρ„Π°ΠΉΠ»Π°. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ вСрсий PHP: 5.3, 5.4, 5.5, 5.6, 7.1

Бсылка: https://extendsclass.com/php-tester.html

JS.DO β€” Online JavaScript Editor

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки

НазваниС Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π·Π° сСбя β€” этот сСрвис тСстируСт ваш JS-ΠΊΠΎΠ΄. ПослС рСгистрации ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ URL-адрСс Ρ„Π°ΠΉΠ»Π° с ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π½Π΅ выходя ΠΈΠ· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Π•ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΈΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ β€” jQuery, Bootstrap.

Бсылка: https://js.do/

CSSDesk

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки

Π—Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ½Π»Π°ΠΉΠ½-сСрвис. ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΏΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с CSS-ΠΊΠΎΠ΄ΠΎΠΌ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ сразу ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Π“ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ. А Π³Π»Π°Π²Π½ΠΎΠ΅, сСрвис простой ΠΈ Π΄Ρ€ΡƒΠΆΠ΅Π»ΡŽΠ±Π½Ρ‹ΠΉ. Новичку, ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ понравится!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как ΠΈ ΠΊΠ°ΠΊΠΈΠΌΠΈ срСдствами Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ошибки Π² PHP ΠΊΠΎΠ΄Π΅?

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, ΠΏΠΎΡ€ΠΎΠΉ, ΠΊΠΎΠ΄ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π‘ΠΈΠΆΡƒ, гадаю: Ρ‡Ρ‚ΠΎ ΠΈ Π³Π΄Π΅ Π½Π΅ Ρ‚Π°ΠΊ?

Π’ ΠΈΡ‚ΠΎΠ³Π΅ часто ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° мСлкая, дурацкая ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠ°, ошибка Π² синтаксисС ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅. ΠŸΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΠΎΠΌ Ρ‚Π°ΠΊ Π½Π΅ ΡΡ‚Π°Π½Π΅ΡˆΡŒ, Ссли ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΅Ρ€ΡƒΠ½Π΄Π΅ Π±Π΅Π³Π°Ρ‚ΡŒ ΠΏΠΎ рСсурсам. А я Ρ…ΠΎΡ‡Ρƒ ΠΈΠΌ Π±Ρ‹Ρ‚ΡŒ.

Вопрос: ΠΊΠ°ΠΊΠΈΠ΅ Π΅ΡΡ‚ΡŒ способы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ошибки Π² PHP ΠΊΠΎΠ΄Π΅? КакиС инструмСнты, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹, ΠΏΡƒΡ‚ΠΈ ΠΈ ΠΏΡ€.?

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки

6 ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² 6

Π’Ρ‡Π΅Ρ€Π° всё Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ, Π° сСгодня Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ / Код Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ

Debugging (ΠžΡ‚Π»Π°Π΄ΠΊΠ°)

Π’ Ρ‡Π΅ΠΌ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ процСсс ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ? Π§Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅?

ΠŸΡ€ΠΎΡ†Π΅ΡΡ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ останавливаСм выполнСния скрипта Π² любом мСстС, смотрим, Ρ‡Ρ‚ΠΎ находится Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π² функциях, Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ мСста; ΠΈΡ‰Π΅ΠΌ Ρ‚Π΅ мСста, Π³Π΄Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ отклоняСтся ΠΎΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ.

Π‘ΡƒΠ΄Π΅Ρ‚ рассмотрСн ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с PHPStorm, Π½ΠΎ ΠΎΡ‚Π»Π°Π΄ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π² любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ IDE.

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ°

Для Π½Π°Ρ‡Π°Π»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² PHP имСлась Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ xdebug. Если Π΅Ρ‘ Π΅Ρ‰Π΅ Π½Π΅Ρ‚, Ρ‚ΠΎ Π½Π°Π΄ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π½Π° xdebug.org.

Π”Π°Π»Π΅Π΅ Π² php.ini прописываСм настройки:

ΠŸΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ сСрвСр, Π½Π° всякий случай.

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки

Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Add new local server

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки

Запуск

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС, Ρ‚.ΠΊ. функция вызываСтся сразу Π½Π° Ρ‚ΠΎΠΉ ΠΆΠ΅ страницС, Ρ‚ΠΎ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ Debug β€” ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ «Π·Π°ΠΌΠΎΡ€ΠΎΠ·ΠΈΡ‚ся» Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΆΠ΅ Π±Ρ€Π΅ΠΉΠΊΠΏΠΎΠΉΠ½Ρ‚Π΅. Π’ ΠΈΠ½ΠΎΠΌ случаС, для Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ трСбуСтся ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ дСйствиС, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ исполнСниС Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ участка ΠΊΠΎΠ΄Π° (ΠΊΠ»ΠΈΠΊ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ, ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° POST-запроса с Ρ„ΠΎΡ€ΠΌΡ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ дСйствия).

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки

ΠŸΡ€ΠΎΡ†Π΅ΡΡ

Для самого процСсса ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ элСмСнты управлСния (см. ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ‹ΡˆΠ΅, Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ Π·Π΅Π»Π΅Π½Ρ‹ΠΌ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠΌ) ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ (см. ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ‹ΡˆΠ΅, Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ ΠΎΡ€Π°Π½ΠΆΠ΅Π²Ρ‹ΠΌ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠΌ).

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки

Show Execution Point ( Alt+F10 ) β€” пСрСносит Π² Ρ„Π°ΠΉΠ» ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ линию ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ скрипта. НапримСр, Ссли Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠ½ΠΎΠ³ΠΎ, Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²ΠΊΠ»Π°Π΄ΠΊΠ°Ρ…, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π·Π°Π±Ρ‹Π»ΠΈ Π³Π΄Π΅ Ρƒ вас ΠΎΡ‚Π»Π°Π΄ΠΊΠ° πŸ™‚

Step Over ( F8 ) β€” Π΄Π΅Π»Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ шаг, Π½Π΅ заходя Π²Π½ΡƒΡ‚Ρ€ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’.Π΅. Ссли Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π»ΠΈΠ½ΠΈΠΈ Π΅ΡΡ‚ΡŒ какая-Ρ‚ΠΎ функция, Π° Π½Π΅ просто пСрСмСнная со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΊΠ»ΠΈΠΊΠ΅ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΡŒ Π½Π΅Ρ‘.

Step Into ( F7 ) β€” Π΄Π΅Π»Π°Π΅Ρ‚ шаг. Но Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ, Ссли Π΅ΡΡ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ функция), Ρ‚ΠΎ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π²Π½ΡƒΡ‚Ρ€ΡŒ Π½Π΅Ρ‘.

Step Out ( Shift+F8 ) β€” выполняСт ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π£Π΄ΠΎΠ±Π½ΠΎ, Ссли случайно вошли Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² ΠΈ Π½ΡƒΠΆΠ½ΠΎ быстро ΠΈΠ· Π½Π΅Π³ΠΎ Π²Ρ‹ΠΉΡ‚ΠΈ, Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ ΠΏΡ€ΠΈ этом ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ.

Rerun ( Ctrl+F5 ) β€” пСрСзапускаСт ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ.

Resume Program( F9 ) β€” ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ скрипта с Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°. Если большС Π½Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΎΡ‡Π΅ΠΊ останова, Ρ‚ΠΎ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° заканчиваСтся ΠΈ скрипт ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π’ ΠΈΠ½ΠΎΠΌ случаС Ρ€Π°Π±ΠΎΡ‚Π° прСрываСтся Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ останова.

Stop ( Ctrl+F2 ) β€” Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ.

View Breakpoints ( Ctrl+Shift+F8 ) β€” просмотр всСх установлСнных Π±Ρ€Π΅ΠΉΠΊΠΏΠΎΠΉΠ½Ρ‚ΠΎΠ².

Mute Breakpoints β€” ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π±Ρ€Π΅ΠΉΠΊΠΏΠΎΠΉΠ½Ρ‚Ρ‹.

Π˜Ρ‚Π°ΠΊ, Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠΎΠ΄Π΅ Π²ΠΈΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°:

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки

Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΠ΅ наТатия F8 пСрСмСстят линию ΠΊΠΎΠ΄Π° Π½Π° строки 11, 12 ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, 15.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки

Π­Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, Ссли останов Π½ΡƒΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ, Π° Π½Π΅ всСгда (особСнно Π² случаС с Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как Π½Π°ΠΉΡ‚ΠΈ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² своСм ΠΊΠΎΠ΄Π΅?

2. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π‘Π” Π½Π°Π΄ΠΎ Π΅Ρ‘ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° сообщала ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ….

Для mysqli, ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠΎΠ½Π½Π΅ΠΊΡ‚ΠΎΠΌ всСгда Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ строчка

Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ PDO, Ρ‚ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒΡΡ, ΠΊΠ°ΠΊ написано здСсь: http://phpfaq.ru/pdo

5. ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ… Π²ΠΎ взаимодСйствии сСрвСра ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° (ΠΊΡƒΠΊΠΈ, сСссии, запросы)- Π² ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ порядкС ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΠ±ΠΌΠ΅Π½ HTTP Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ

6. Π—Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ строчку с header(«Location:»), Ссли ΠΈΡ‰Π΅Ρ‚Π΅ ΠΎΠ±ΡˆΠΈΠ±ΠΊΡƒ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ POST запроса

8. И Π‘ΠΠœΠžΠ• Π’ΠΠ–ΠΠžΠ•: запуская скрипт, смотритС Π½Π΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, Π° ИБΠ₯ΠžΠ”ΠΠ«Π™ HTML ΠΊΠΎΠ΄!.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π§Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² этом случаС?

Π”Π°ΠΆΠ΅ самый Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Ρ‚Ρ‹ Π½Π° 100% Π΄ΠΎΠ²Π΅Ρ€ΡΠ΅ΡˆΡŒ, ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π° сосСднСй машинС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΊΠ°ΠΊ часы, ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ сообщСниС ΠΎΠ± ошибкС. ΠŸΡ€ΠΈΡ‡ΠΈΠ½ Ρ‚ΠΎΠΌΡƒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ бСсконСчноС мноТСство. Π­Ρ‚ΠΎ ΠΈ Ρ‚Π°ΠΊΠΎΠΉ распространСнный случай, ΠΊΠ°ΠΊ отсутствиС ΠΏΡ€Π°Π² доступа ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ, ΠΈ Ρ‚Π°ΠΊΠΈΠ΅ экзотичСскиС, ΠΊΠ°ΠΊ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠΌ выполнСния самых распространСнных ΠΈ Π±Π΅Π·ΠΎΠ±ΠΈΠ΄Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΡƒΠ±Π΅Π΄ΠΈΡΡŒ, Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠ΄Π΅ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ символы ‘@’ ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π­Ρ‚ΠΎΡ‚ Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ сообщСния ΠΎΠ± ошибкС. Π₯ΠΎΡ€ΠΎΡˆΠ΅Π½ΡŒΠΊΠΎΠ΅ Π΄Π΅Π»ΠΎ! Π’Ρ‹ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈΡ‰Π΅ΡˆΡŒ-ΠΈΡ‰Π΅Ρ‰ΡŒ, Π° сам ΠΆΠ΅ своСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Ρ€ΠΎΡ‚ Π·Π°Ρ‚ΠΊΠ½ΡƒΠ».

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ здСсь ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΠ΅Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ. Показан Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ дСйствий.
Π’ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΏΡ€ΠΈ error_reporting(E_ALL); PHP сразу ΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π» Π±Ρ‹, Ρ‡Ρ‚ΠΎ индСкс массива Ρƒ вас Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ.

НадСюсь, Ρ‡Ρ‚ΠΎ я смог хотя Π±Ρ‹ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ этого занятия.
Π£Π΄Π°Ρ‡Π½ΠΎΠΉ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° PHP. Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄?

PHP β€” ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½Π΅ΠΉΡˆΠΈΠΉ скриптовый язык программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ примСняСтся ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ web-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Он поддСрТиваСтся мноТСством хостинг-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ² ΠΈ являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π»ΠΈΠ΄ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… языков, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² цСлях создания динамичСских web-сайтов. Иногда Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ синтаксиса ΠΊΠΎΠ΄Π° PHP. Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСно, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ΄Π° сСгодня ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ½Π»Π°ΠΉΠ½-сСрвисы β€” Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€Ρ‹ (validators). Они Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ просто: ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ достаточно ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свой ΠΊΠΎΠ΄ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄Β» Π»ΠΈΠ±ΠΎ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Β«CheckΒ». Π’Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π°Π΄ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π³Π°Π»ΠΎΡ‡ΠΊΠΎΠΉ Π½ΡƒΠΆΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ. ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ сСрвисы Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ пСрСтаскивания/Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„Π°ΠΉΠ»Π° с ΠΊΠΎΠ΄ΠΎΠΌ.

Один ΠΈΠ· популярных сСрвисов для Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ β€” https://phpcodechecker.com/. Он Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΈ быстро Π½Π°ΠΉΡ‚ΠΈ ΡΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² ΠΊΠΎΠ΄Π΅. НайдСнныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½Ρ‹, плюс ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚ автоматичСский ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° строку с ошибкой (Π²Ρ‹ сэкономитС врСмя поиска). ВыдСлСнная ошибка Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ коммСнтариями.

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ PHP?

Π”Π°Π»Π΅Π΅ достаточно Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу вашдомСн/phpinfo.php. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ вСрсия PHP-сСрвСра отобразится Π½Π° экранС.

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ информация ΠΎ вСрсии Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π°, слСдуСт ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΈΠ· ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π»ΠΈΠ±ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΊ Π½Π΅ΠΌΡƒ доступ, Ρ‚. ΠΊ. прСдоставлСниС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π² ΠΎΠ±Ρ‰ΠΈΠΉ доступ ΠΌΠΎΠΆΠ΅Ρ‚ нСсти ΡƒΠ³Ρ€ΠΎΠ·Ρƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ бСзопасности.

На этом всё. Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ PHP ΠΊΠΎΠ΄ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния синтаксичСских ошибок ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈ быстро, для Ρ‡Π΅Π³ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ инструмСнты β€” Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€Ρ‹. НС составит Ρ‚Ρ€ΡƒΠ΄Π° ΠΈ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ PHP Π² случаС нСобходимости.

Π£Π·Π½Π°ΠΉΡ‚Π΅, ΠΏΡ€Π°Π²ΠΈΠ»Π΅Π½ Π»ΠΈ ваш ΠΊΠΎΠ΄! ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ Π΅Π³ΠΎ Π½Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ½Π»Π°ΠΉΠ½-сСрвисах!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

PHP для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки

НС ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ ошибок Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΡ‚, ΠΊΡ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚, ΠΈ ΠΌΡ‹ Ρ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” сидим ΠΈ трудимся Π½Π΅ покладая Ρ€ΡƒΠΊ, Ρ‡ΠΈΡ‚Π°Π΅ΠΌ Π₯Π°Π±Ρ€ πŸ™‚

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я ΠΏΠΎΠ²Π΅Π΄Ρƒ свой рассказа ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Π² PHP, ΠΈ ΠΎ Ρ‚ΠΎΠΌ ΠΊΠ°ΠΊ ΠΈΡ… ΠΎΠ±ΡƒΠ·Π΄Π°Ρ‚ΡŒ.

Ошибки

Разновидности Π² сСмСйствС ошибок

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΡ€ΡƒΡ‡Π°Ρ‚ΡŒ ошибки, я Π±Ρ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π²ΠΈΠ΄ ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° самых ярких прСдставитСлСй.

Π§Ρ‚ΠΎΠ±Ρ‹ Π½ΠΈ ΠΎΠ΄Π½Π° ошибка Π½Π΅ ΡƒΡˆΠ»Π° Π½Π΅Π·Π°ΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠΉ потрСбуСтся Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ отслСТиваниС всСх ошибок с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ error_reporting(), Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ display_errors Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΡ… ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅:

Π€Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ошибки

Π‘Π°ΠΌΡ‹ΠΉ Π³Ρ€ΠΎΠ·Π½Ρ‹ΠΉ Π²ΠΈΠ΄ ошибок β€” Ρ„Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ компиляции, Ρ‚Π°ΠΊ ΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ парсСра ΠΈΠ»ΠΈ PHP-скрипта, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ скрипта ΠΏΡ€ΠΈ этом прСрываСтся.

E_PARSE

Π­Ρ‚ΠΎ ошибка появляСтся, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ допускаСтС Π³Ρ€ΡƒΠ±ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ синтаксиса ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ PHP Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΎΡ‚ Π½Π΅Π³ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ссли Π½Π΅ Π·Π°ΠΊΡ€Ρ‹Π»ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Π½ΡƒΡŽ ΠΈΠ»ΠΈ ΠΊΡ€ΡƒΠ³Π»ΡƒΡŽ скобочку:

Или написали Π½Π° нСпонятном языкС:

Π›ΠΈΡˆΠ½ΠΈΠ΅ скобочки Ρ‚ΠΎΠΆΠ΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ, ΠΈ Π½Π΅ Ρ‚Π°ΠΊ Π²Π°ΠΆΠ½ΠΎ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ Π»ΠΈΠ±ΠΎ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅:

ΠžΡ‚ΠΌΠ΅Ρ‡Ρƒ ΠΎΠ΄ΠΈΠ½ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ β€” ΠΊΠΎΠ΄ Ρ„Π°ΠΉΠ»Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ допустили parse error Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ссли Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ошибок Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ Ρ„Π°ΠΉΠ»Π΅, Π³Π΄Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ошибка парсСра Ρ‚ΠΎ это Π½Π΅ сработаСт:

E_ERROR

Π­Ρ‚ΠΎ ошибка появляСтся, ΠΊΠΎΠ³Π΄Π° PHP понял Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Π½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ сиС Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Π²Π²ΠΈΠ΄Ρƒ ряда ΠΏΡ€ΠΈΡ‡ΠΈΠ½. Π­Ρ‚Π° ошибка Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ скрипта, ΠΏΡ€ΠΈ этом ΠΊΠΎΠ΄ Π΄ΠΎ появлСния ошибки сработаСт:

НС Π±Ρ‹Π» Π½Π°ΠΉΠ΄Π΅Π½ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΉ Ρ„Π°ΠΉΠ»:

Π‘Ρ‹Π»ΠΎ Π±Ρ€ΠΎΡˆΠ΅Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ (Ρ‡Ρ‚ΠΎ это Π·Π° Π·Π²Π΅Ρ€ΡŒ, расскаТу Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ погодя), Π½ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ:

ΠŸΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ класса:

ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΡ свободной памяти (большС, Ρ‡Π΅ΠΌ прописано Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ memory_limit) ΠΈΠ»ΠΈ Π΅Ρ‰Ρ‘ Ρ‡Π΅Π³ΠΎ-Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ:

ΠžΡ‡Π΅Π½ΡŒ часто встрСчаСтся ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Π»ΠΈΠ±ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ с вопросом потрСбляСмой памяти

РСкурсивный Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΎΠ½ закончился Π½Π° 256-ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΈΠ±ΠΎ Ρ‚Π°ΠΊ прописано Π² настройках xdebug (Π΄Π°, данная ошибка ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Π² Ρ‚Π°ΠΊΠΎΠΌ Π²ΠΈΠ΄Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ xdebug Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ):

НС Ρ„Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅

Π”Π°Π½Π½Ρ‹ΠΉ Π²ΠΈΠ΄ Π½Π΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ скрипта, Π½ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΡ… ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ тСстировщик. ИмСнно Ρ‚Π°ΠΊΠΈΠ΅ ошибки Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ большС всСго Ρ…Π»ΠΎΠΏΠΎΡ‚ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ.

E_WARNING

Π‘Ρ‹Π²Π°Π΅Ρ‚, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΡˆΡŒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

Π˜Ρ… ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΈ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ всС Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ смысла…

E_NOTICE

Π­Ρ‚ΠΎ самыС распространСнныС ошибки, ΠΌΠ°Π»ΠΎ Ρ‚ΠΎΠ³ΠΎ, Π΅ΡΡ‚ΡŒ Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ ошибок ΠΈ ΠΊΠ»Π΅ΠΏΠ°ΡŽΡ‚ ΠΈΡ… Ρ†Π΅Π»Ρ‹ΠΌΠΈ днями. Π’ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΏΡ€ΠΈ Ρ†Π΅Π»ΠΎΠΌ рядС Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ошибок.

Когда ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ ΠΊ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ:

Когда ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ ΠΊ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ элСмСнту массива:

Когда ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ ΠΊ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ константС:

Когда Π½Π΅ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…:

Для избСТания ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ошибок β€” Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Π΅ΠΉ, ΠΈ Ссли Π²Π°ΠΌ IDE подсказываСт ΠΎ Ρ‡Ρ‘ΠΌ-Ρ‚ΠΎ β€” Π½Π΅ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΅Ρ‘:

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки

E_STRICT

Π”Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ ошибок Π°ΠΊΡ‚ΡƒΠ°Π»Π΅Π½ для PHP вСрсии 5.6, ΠΈ практичСски всС ΠΈΡ… Π²Ρ‹ΠΏΠΈΠ»ΠΈΠ»ΠΈ ΠΈΠ·
7-ΠΊΠΈ. ΠŸΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ RFC. Если ΠΊΡ‚ΠΎ Π·Π½Π°Π΅Ρ‚ Π³Π΄Π΅ Π΅Ρ‰Ρ‘ ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ошибки, Ρ‚ΠΎ Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Π² коммСнтариях

E_DEPRECATED

Π’Π°ΠΊ PHP Π±ΡƒΠ΄Π΅Ρ‚ Ρ€ΡƒΠ³Π°Ρ‚ΡŒΡΡ, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Ρ‚.Π΅. Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ ΠΊΠ°ΠΊ deprecated, ΠΈ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΌΠ°ΠΆΠΎΡ€Π½ΠΎΠΌ Ρ€Π΅Π»ΠΈΠ·Π΅ ΠΈΡ… Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚):

Π’ ΠΌΠΎΡ‘ΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Ρ‡Ρ‘Ρ€ΠΊΠ½ΡƒΡ‚Ρ‹:

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки. Π€ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ php Ρ„Π°ΠΉΠ» Π½Π° ошибки

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅

Π­Ρ‚ΠΎΡ‚ Π²ΠΈΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Β«Ρ€Π°Π·Π²ΠΎΠ΄ΠΈΡ‚Β» сам Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΊΠΎΠ΄Π°, я ΡƒΠΆΠ΅ Π΄Π°Π²Π½ΠΎ ΠΈΡ… Π½Π΅ встрСчал, ΠΈ Π½Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π²Π°ΠΌ ΠΈΠΌΠΈ Π·Π»ΠΎΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡ‚ΡŒ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ познакомились с Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ Π²ΠΈΠ΄ΠΎΠ² ΠΈ Ρ‚ΠΈΠΏΠΎΠ² ошибок, ΠΏΠΎΡ€Π° ΠΎΠ·Π²ΡƒΡ‡ΠΈΡ‚ΡŒ нСбольшоС пояснСниС ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ display_errors :

ΠŸΡ€ΠΈΡ€ΡƒΡ‡Π΅Π½ΠΈΠ΅

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ошибками Π² PHP сущСствуСт 3 Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

Π£ вас Π½Π΅ получится Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок, хотя ΠΎΡ‡Π΅Π½ΡŒ Π±Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ошибок свой ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, Π½ΠΎ Π½Π΅Ρ‚ β€” ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, ΠΈ всю Π»ΠΎΠ³ΠΈΠΊΡƒ отобраТСния для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° описывайтС ΡƒΠΆΠ΅ нСпосрСдствСнно Π² Π½Ρ‘ΠΌ

Π‘ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ написан Π²Ρ‹ΡˆΠ΅ Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½Π° сущСствСнная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β€” ΠΎΠ½ Π½Π΅ Π»ΠΎΠ²ΠΈΡ‚ Ρ„Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ошибки, ΠΈ ΠΏΡ€ΠΈ Ρ‚Π°ΠΊΠΈΡ… ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… вмСсто сайта ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ увидят лишь ΠΏΡƒΡΡ‚ΡƒΡŽ страницу, Π»ΠΈΠ±ΠΎ, Ρ‡Ρ‚ΠΎ Π΅Ρ‰Ρ‘ Ρ…ΡƒΠΆΠ΅, сообщСниС ΠΎΠ± ошибкС. Π”Π°Π±Ρ‹ Π½Π΅ Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ сцСнария слСдуСт Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ register_shutdown_function() ΠΈ с Π΅Ρ‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая всСгда Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ скрипта:

Данная функция Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ всСгда!

Но вСрнёмся ΠΊ ошибкам, для отслСТивания появлСния Π² ΠΊΠΎΠ΄Π΅ ошибки Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ error_get_last(), с Π΅Ρ‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ послСднСй выявлСнной ошибкС, Π° ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ„Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ошибки ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°ΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°, Ρ‚ΠΎ ΠΎΠ½ΠΈ всСгда Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€ΠΎΠ»ΡŒ «послСдних»:

Π₯ΠΎΡ‚Π΅Π» ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ…ΠΎΡ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΈ встрСчаСтся для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок, ΠΈ Π²Ρ‹ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ Π΄Π°ΠΆΠ΅ с Π½ΠΈΠΌ ΡΡ‚ΠΎΠ»ΠΊΠ½Ρ‘Ρ‚Π΅ΡΡŒ, Π½ΠΎ ΠΎΠ½ потСрял Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ начиная с 7-ΠΎΠΉ вСрсии PHP. Π§Ρ‚ΠΎ ΠΏΡ€ΠΈΡˆΠ»ΠΎ Π½Π° Π·Π°ΠΌΠ΅Π½Ρƒ я расскаТу Ρ‡ΡƒΡ‚ΡŒ погодя.

О проТорливости

ΠŸΡ€ΠΎΠ²Π΅Π΄Ρ‘ΠΌ простой тСст, ΠΈ выясним β€” сколько Π΄Ρ€Π°Π³ΠΎΡ†Π΅Π½Π½Ρ‹Ρ… рСсурсов ΠΊΡƒΡˆΠ°Π΅Ρ‚ самая Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Π°Ρ ошибка:

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ запуска Π΄Π°Π½Π½ΠΎΠ³ΠΎ скрипта Ρƒ мСня получился Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² Ρ†ΠΈΠΊΠ»Π΅:

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎ Ρ…ΡƒΠΆΠ΅, ΠΈ Π½Π° порядок (Π΄Π°ΠΆΠ΅ Π½Π° Π΄Π²Π° порядка!):

Π’Ρ‹Π²ΠΎΠ΄ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π΅Π½ β€” ошибки Π² ΠΊΠΎΠ΄Π΅ приводят ΠΊ лишнСй проТорливости скриптов β€” Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²ΠΎ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ тСстирования прилоТСния Π²ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ всСх ошибок!

ВСстированиС ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ» Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… вСрсиях PHP ΠΈ Π²Π΅Π·Π΄Π΅ Ρ€Π°Π·Π½ΠΈΡ†Π° Π² дСсятки Ρ€Π°Π·, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡƒΡΡ‚ΡŒ это Π±ΡƒΠ΄Π΅Ρ‚ Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΠ²ΠΎΠ΄ΠΎΠΌ для исправлСния всСх ошибок Π² ΠΊΠΎΠ΄Π΅

Π“Π΄Π΅ собака Π·Π°Ρ€Ρ‹Ρ‚Π°

Π’ PHP Π΅ΡΡ‚ΡŒ спСц символ Β«@Β» β€” ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ подавлСния ошибок, Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π΄Π°Π±Ρ‹ Π½Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ошибок, Π° полоТится Π½Π° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ PHP Π² случаС Ρ‡Π΅Π³ΠΎ:

Если Π²Ρ‹ Π² Ρ‚Π°ΠΊΠΎΠΉ способ подавляСтС ошибки, Ρ‚ΠΎ это ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° процСссор Π² сравнСнии с Ρ‚Π΅ΠΌ, Ссли Π²Ρ‹ ΠΈΡ… просто скрываСтС (см. ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ тСст Π²Ρ‹ΡˆΠ΅), Π½ΠΎ Π² любом случаС, ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½ΠΈΠ΅ ошибок это Π·Π»ΠΎ

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

Π’ эру PHP4 Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ (exceptions), всё Π±Ρ‹Π»ΠΎ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС, ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π±ΠΎΡ€ΠΎΠ»ΠΈΡΡŒ с ошибками ΠΊΠ°ΠΊ ΠΌΠΎΠ³Π»ΠΈ, это Π±Ρ‹Π»ΠΎ сраТСниС Π½Π΅ Π½Π° Тизнь, Π° Π½Π° ΡΠΌΠ΅Ρ€Ρ‚ΡŒβ€¦ ΠžΠΊΡƒΠ½ΡƒΡ‚ΡŒΡΡ Π² эту ΡƒΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ противостояния ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄. Π§Π°ΡΡ‚ΡŒ 1. Π‘Ρ‚ΠΎΠΈΡ‚ Π»ΠΈ Π΅Ρ‘ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ сСйчас? НС ΠΌΠΎΠ³Ρƒ Π΄Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚, лишь Ρ…ΠΎΡ‡Ρƒ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ это ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΡŽ языка, ΠΈ раскроСт всю ΠΏΡ€Π΅Π»Π΅ΡΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ β€” ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ событиС Π² PHP, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ ошибок Π½Π΅ просто ΠΊΠΎΠ½ΡΡ‚Π°Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Π° Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΎΡ‚ программиста Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… дСйствий ΠΏΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ случая.

К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, скрипт Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Π² кСш Ρ„Π°ΠΉΠ», Ссли Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ пошло Π½Π΅ Ρ‚Π°ΠΊ (Π½Π΅Ρ‚ доступа Π½Π° запись, Π½Π΅Ρ‚ мСста Π½Π° дискС), гСнСрируСтся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ°, Π° Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ принимаСтся Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ β€” ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅ мСсто ΠΈΠ»ΠΈ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅.

Π’ ΠΊΠ°ΠΊΠΈΡ… случаях стоит ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ:

БоотвСтствСнно Π»ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΎΡ‡Π΅Π½ΡŒ простой сцСнарий ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΠ³Π΄Π° Ρƒ нас любая ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ситуация обрабатываСтся Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΌΠ°Π½Π΅Ρ€. Но Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, ΠΈ Ρ‚ΠΎΠ³Π΄Π° слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΈ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Exception β€” это ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ событиС, ΠΈΠ½Ρ‹ΠΌΠΈ словами ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΏΡ€Π°Π²ΠΈΠ». НС Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Ρ… ошибок, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, для Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ Π²Π²Π΅Π΄Ρ‘Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… (хотя Ρ‚ΡƒΡ‚ Π½Π΅ всё Ρ‚Π°ΠΊ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ). ΠŸΡ€ΠΈ этом ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ написан Π² Ρ‚ΠΎΠΌ мСстС, Π³Π΄Π΅ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ способСн Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ для ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Ρ… Π½Π΅Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒΡŽ Ρ„Π°ΠΉΠ»Π° для записи Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π²Ρ‹Π±ΠΎΡ€ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ Π΅Π³ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌ, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΎΠ½ ΠΈΠΌΠ΅Π» Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ситуации слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ set_exception_handler() ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ для ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ€ΠΎΡˆΠ΅Π½Ρ‹ Π²Π½Π΅ Π±Π»ΠΎΠΊΠ° try-catch ΠΈ Π½Π΅ Π±Ρ‹Π»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹. ПослС Π²Ρ‹Π·ΠΎΠ²Π° Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ скрипта Π±ΡƒΠ΄Π΅Ρ‚ остановлСно:

Π•Ρ‰Ρ‘ расскаТу ΠΏΡ€ΠΎ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ с использованиСм Π±Π»ΠΎΠΊΠ° finally β€” этот Π±Π»ΠΎΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ Π²Π½Π΅ зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π±Ρ‹Π»ΠΎ Π²Ρ‹Π±Ρ€ΠΎΡˆΠ΅Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π½Π΅Ρ‚:

Для понимания Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ это Π½Π°ΠΌ Π΄Π°Ρ‘Ρ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования Π±Π»ΠΎΠΊΠ° finally :

Π’.Π΅. Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ β€” Π±Π»ΠΎΠΊ finally Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ Π΄Π°ΠΆΠ΅ Π² Ρ‚ΠΎΠΌ случаС, Ссли Π²Ρ‹ Π² Π±Π»ΠΎΠΊΠ΅ catch пробрасываСтС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹ΡˆΠ΅ (собствСнно ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ ΠΎΠ½ ΠΈ задумывался).

Для Π²Π²ΠΎΠ΄Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² самый Ρ€Π°Π·, ΠΊΡ‚ΠΎ ΠΆΠ°ΠΆΠ΄Π΅Ρ‚ Π΅Ρ‰Ρ‘ подробностСй, Ρ‚ΠΎ Π²Ρ‹ ΠΈΡ… Π½Π°ΠΉΠ΄Ρ‘Ρ‚Π΅ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ πŸ˜‰

PHP7 β€” всё Π½Π΅ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π±Ρ‹Π»ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅

Π’Π°ΠΊ, Π²ΠΎΡ‚ Π²Ρ‹ сСйчас всю ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π²Ρ‹ΡˆΠ΅ усвоили ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ я Π±ΡƒΠ΄Ρƒ Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ вас нововвСдСниями Π² PHP7, Ρ‚.Π΅. я Π±ΡƒΠ΄Ρƒ Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, с Ρ‡Π΅ΠΌ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Ρ‚ΡŒΡΡ работая Π½Π°Π΄ соврСмСнным PHP ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ. Π Π°Π½Π΅Π΅ я Π²Π°ΠΌ рассказывал ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π» Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΡΡ‚Ρ‹Π»ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠΎΡ€ΡƒΠ΄ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π»Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ критичСскиС ошибки, Ρ‚Π°ΠΊ Π²ΠΎΡ‚ β€” Π² PHP7 это Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ, Π½ΠΎ? ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ? завязались Π½Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Ρ…ΠΎΡ‚ΡŒ ΠΈ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΠΎΠ½ΠΎ Π΄Π°Π»Π΅ΠΊΠΎ ΠΎΡ‚ ΠΈΠ΄Π΅Π°Π»Π°. А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌ ΠΎΠ± измСнСниях:

Π‘Π»ΠΎΠΆΠ½ΠΎ? Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, Π²ΠΎΠ·ΡŒΠΌΡ‘ΠΌ Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΈ Π²Ρ‹ΡˆΠ΅ ΠΈ слСгка ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ:

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΏΠΎΠΉΠΌΠ°Π΅ΠΌ ΠΈ Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ:

И Ρ‡ΡƒΡ‚ΡŒ-Ρ‡ΡƒΡ‚ΡŒ Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ:

TypeError β€” для ошибок, ΠΊΠΎΠ³Π΄Π° Ρ‚ΠΈΠΏ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ совпадаСт с ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ:

ArithmeticError β€” ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΈ матСматичСских опСрациях, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ ΠΊΠΎΠ³Π΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ вычислСния ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ Π»ΠΈΠΌΠΈΡ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ для Ρ†Π΅Π»ΠΎΠ³ΠΎ числа:

AssertionError β€” Ρ€Π΅Π΄ΠΊΠΈΠΉ Π·Π²Π΅Ρ€ΡŒ, появляСтся ΠΊΠΎΠ³Π΄Π° условиС Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Π² assert() Π½Π΅ выполняСтся:

ΠŸΡ€ΠΈ настройках production-сСрвСров, Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ zend.assertions ΠΈ assert.exception ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚, ΠΈ это ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ

ΠŸΠΎΠ»Π½Ρ‹ΠΉ список ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π²Ρ‹ Π½Π°ΠΉΠ΄Ρ‘Ρ‚Π΅ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠ°Π½ΡƒΠ°Π»Π΅, Ρ‚Π°ΠΌ ΠΆΠ΅ иСрархия SPL ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.

ΠŸΡ€ΠΈ написании Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π° Π±Ρ‹Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΈΠ· ΡΡ‚Π°Ρ‚ΡŒΠΈ Throwable Exceptions and Errors in PHP 7.

Π•Π΄ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅

β€” Π’Π°ΠΌ ошибки, Ρ‚ΡƒΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Π° ΠΌΠΎΠΆΠ½ΠΎ это всё ΠΊΠ°ΠΊ-Ρ‚ΠΎ Π΄ΠΎ ΠΊΡƒΡ‡ΠΈ сгрСсти?

Π”Π° запросто, Ρƒ нас ΠΆΠ΅ Π΅ΡΡ‚ΡŒ set_error_handler() ΠΈ Π½ΠΈΠΊΡ‚ΠΎ Π½Π°ΠΌ Π½Π΅ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅:

Но Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ с PHP7 ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π΅Π½, со всСм Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ справляСтся Throwable :

ΠžΡ‚Π»Π°Π΄ΠΊΠ°

Иногда, для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΊΠΎΠ΄Π°, Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ происходило с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌ этапС, для этих Ρ†Π΅Π»Π΅ΠΉ Π΅ΡΡ‚ΡŒ функция debug_backtrace() ΠΈ debug_print_backtrace() ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ/ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС:

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ debug_print_backtrace() Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ список Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΏΡ€ΠΈΠ²Π΅Π΄ΡˆΠΈΡ… нас ΠΊ Π΄Π°Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅:

Assert

Ѐункция assert() помСняла своё ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ ΠΎΡ‚ вСрсии 5.6 ΠΊ 7.0, ΠΈ Π΅Ρ‰Ρ‘ сильнСй всё помСнялось Π² вСрсии 7.2, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Π΅ΠΉ Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ changelog’ΠΈ PHP πŸ˜‰

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ случай β€” это ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½Π°Π΄ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ TODO прямо Π² ΠΊΠΎΠ΄Π΅, Π΄Π° Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π΅ Π·Π°Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»:

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ E_WARNING :

PHP7 ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² Ρ€Π΅ΠΆΠΈΠΌ exception, ΠΈ вмСсто ошибки Π±ΡƒΠ΄Π΅Ρ‚ всСгда ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ AssertionError :

ΠŸΡ€ΠΈ нСобходимости, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅:

Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ использования β€” это созданиС Π½Π΅ΠΊΠΎΠ΅Π³ΠΎ подобия TDD, Π½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ β€” это лишь ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅. Π₯отя, Ссли сильно ΠΏΠΎΡΡ‚Π°Ρ€Π°Ρ‚ΡŒΡΡ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π°Π±Π°Π²Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π² тСстировании вашСго ΠΊΠΎΠ΄Π°:

Π’Ρ€Π΅Ρ‚ΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” Π½Π΅ΠΊΠΎΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ описали ΠΏΡ€Π°Π²ΠΈΠ»Π° использования своСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π½ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ убСдится, Ρ‡Ρ‚ΠΎ вас поняли ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΠΈ Π² случаС Ρ‡Π΅Π³ΠΎ сразу ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Π½Π° ΠΎΡˆΠΈΠ±ΠΊΡƒ (я Π²ΠΎΡ‚ Π΄Π°ΠΆΠ΅ Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π΅Π³ΠΎ понимаю, Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° Π²ΠΏΠΎΠ»Π½Π΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ):

Если вас заинтСрСсовали ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹, Ρ‚ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для вас Ρƒ мСня Π΅ΡΡ‚ΡŒ ссылочка Π½Π° Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ PhpDeal.

Никогда Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ assert() для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², вСдь фактичСски assert() ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ (Π²Π΅Π΄Ρ‘Ρ‚ сСбя ΠΊΠ°ΠΊ eval() ), Π° это Ρ‡Ρ€Π΅Π²Π°Ρ‚ΠΎ PHP-ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠ΅ΠΉ. И Π΄Π°, это ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, вСдь Ссли ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ assert’Ρ‹, Ρ‚ΠΎ всС ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹, Π° Ссли Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅, Ρ‚ΠΎ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, Π° Π²Π½ΡƒΡ‚Ρ€ΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ assert’a Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Π±ΡƒΠ»Π΅Π²Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния. А, ΠΈ это помСняли Π² PHP 7.2 πŸ™‚

Если Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΆΠΈΠ²ΠΎΠΉ ΠΎΠΏΡ‹Ρ‚ использования assert() β€” ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ со ΠΌΠ½ΠΎΠΉ, Π±ΡƒΠ΄Ρƒ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½. И Π΄Π°, Π²ΠΎΡ‚ Π²Π°ΠΌ Π΅Ρ‰Ρ‘ Π·Π°Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‡Ρ‚ΠΈΠ²Π° ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅ β€” PHP Assertions, с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ вопросом Π² ΠΊΠΎΠ½Ρ†Π΅ πŸ™‚

Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π― Π·Π° вас Π½Π°ΠΏΠΈΡˆΡƒ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΈΠ· Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

Π­Ρ‚ΠΎ рСпост ΠΈΠ· сСрии статСй Β«PHP для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…Β»:

Бпасибо ΠœΠ°ΠΊΡΠΈΠΌΡƒ БлСсарСнко Π·Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ Π² написании ΡΡ‚Π°Ρ‚ΡŒΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *