بکندباز

انواع خطاها در PHP

اصولاً خطا یک اشتباه در برنامه است که ممکن است به دلیل نوشتن نحو نادرست یا کد نادرست ایجاد شود. یک پیام خطا در مرورگر شما نمایش داده می شود که حاوی نام فایل همراه با مکان، پیامی که خطا را توصیف می کند و شماره خطی که در آن خطا رخ داده است.

معمولا انواع مختلفی از خطا وجود دارد. در PHP عمدتاً چهار نوع خطا در نظر گرفته می شود:

  1. Syntax Error یا Parse Error
  2. Fatal Error
  3. Warning Error
  4. Notice Error

تمام این خطاها را با مثال هایی به تفصیل مورد بحث قرار خواهیم داد:

خطای Syntax یا Parse

خطای Syntax یک اشتباه در سینتکس کد است که برنامه نویسان به دلیل عدم توجه یا دانش ممکن است این خطا را انجام دهند. همچنین به عنوان خطای Parse نیز شناخته می شود . کامپایلر برای دریافت خطای سینتکس در زمان کامپایل اقدام می کند.

توجه: خطای سینتکس اجرای کد را متوقف می کند.

این خطاها ممکن است به دلایل رایج مانند کوتیشن های بسته نشده، نقطه ویرگول فراموش شده، پرانتز اضافی یا کم، یا براکت های بسته نشده و بسیاری موارد دیگر رخ دهد. هنگام کامپایل برنامه، خطای سینتکس توسط کامپایلر کشف می شود و یک پیغام خطای parse یا خطای syntax به ما می دهد.

مثال 1: نقطه ویرگول وجود ندارد

<?php  
    /*------------------syntax error-------------------*/  
    echo "Alex: Hie! I'm Alex. </br>";  
    echo "Bob: I'm Bob. How are you?"  
    echo "Alex: I'm good! and you?";  
    echo "Bob: I'm also good";  
?>  

خروجی

Parse error: syntax error, unexpected token "echo", expecting "," or ";" in file.php on line 5

توضیح: در این مثال بالا، یک نقطه ویرگول (;) در خط 5 وجود نداشت. بنابراین، کامپایلر یک خطای parse ایجاد کرد و یک پیام خطا در مرورگر همانطور که در خروجی داده شده است، نمایش داد.

مثال 2: نماد دلار ($) گم شده است

<?php  
    /*------------------syntax error-------------------*/  
    $telecom = "Airtel";  
    automobile = "Jaguar";  
    echo $telecom;  
    echo $automobile;  
?>  

خروجی

Parse error: syntax error, unexpected token "=" in file.php on line 4

توضیح: در این مثال بالا، نماد دلار ($) در خط 4 وجود نداشت. بنابراین، یک خطای Parse ایجاد کرد و یک پیام خطا در مرورگر همانطور که در خروجی داده شده است نمایش داد.

خطای Fatal (مرگبار)

خطای fatal نوع دیگری از خطا است که به دلیل استفاده از عملکرد نامشخص رخ می دهد. کامپایلر PHP کد PHP را درک می کند اما تابع تعریف نشده را نیز می شناسد. این بدان معنی است که وقتی یک تابع بدون تعریف آن فراخوانی می شود، کامپایلر PHP یک خطای fatal ایجاد می کند.

مثال زیر حاوی خطای fatal را ببینید:

مثال: فراخوانی تابع تعریف نشده

<?php  
    /*------------------fatal error-------------------*/  
    function add($f1, $f2) {  
        $sum = $f1 + $f2;  
        echo "Addition:" . $sum;  
    }  
      
    $f1 = 23;  
    $f2 = 56;  
      
    sum()‎;  
?>  

در کد بالا تابع add()‎ را تعریف کرده ایم اما تابع دیگری را فراخوانی کرده ایم که sum()‎ است. بنابراین، یک خطای fatal ایجاد می کند و یک پیام خطا را در مرورگر چاپ می کند که در زیر آمده است:

خروجی

Fatal error: Uncaught Error: Call to undefined function sum()‎ in file.php:11 Stack trace: #0 {main} thrown in file.php on line 11

خطای Warning (هشدار)

هنگامی که برنامه نویس سعی می کند یک فایل نا موجود را اضافه کند، یک warning error ایجاد می شود. تابع PHP فایل گم شده ای را که وجود ندارد فراخوانی می کند. خطای warning اجرای برنامه را متوقف نمی کند.

دلیل اصلی ایجاد یک خطای warning، ارسال تعداد نادرست پارامتر به یک تابع یا گنجاندن یک فایل ناموجود در کد است.

مثال: یک فایل ناموجود در کد وارد شده است

<?php  
    /*-------------------warning error------------------*/  
    $cmpny = 'javatpoint';  
    echo "Warning Error: ";  
      
    //include a file in the code  
    include ('jtp.php');      
?>  

خروجی

Warning Error:
Warning: include(jtp.php): failed to open stream: No such file or directory in file.php on line 7

Warning: include()‎: Failed opening 'jtp.php' for inclusion (include_path='C:\xampp\php\PEAR') in file.php on line 7

توضیح: در این مثال سعی کردیم فایلی را در برنامه خود قرار دهیم که وجود ندارد. بنابراین، یک اخطار ایجاد کرد و یک پیام خطا نمایش داد.

خطای Notice (توجه کنید!)

خطای Notice همان خطای Warning است. وقتی برنامه حاوی چیزی اشتباه باشد، خطای Notice رخ می دهد. اما اجرای برنامه را با خطای notice ادامه می یابد. خطای notice مانع از اجرای کد نمی شود. به عنوان مثال – دسترسی به متغیر تعریف نشده.

به طور کلی، خطای notice زمانی رخ می دهد که ما سعی می کنیم از متغیری استفاده کنیم یا به آن دسترسی داشته باشیم که تعریف نشده است. برای درک آن به مثال زیر توجه کنید:

مثال 2: دسترسی به متغیر تعریف نشده

<?php  
    /*------------------notice error-------------------*/  
    $telecom = "Airtel";  
    echo $telecom;  
    echo $automobile;  
?>  

خروجی

Airtel
Notice: Undefined variable: automobile in file.php on line 6

توضیح: در این مثال بالا، ما سعی داشتیم از متغیر $automobile استفاده کنیم که تعریف نشده بود. بنابراین، یک خطای notice با متن “undefined variable ” تولید کرد و اجرای برنامه را ادامه داد.

zohreh

مدیر وب سایت بکندباز

دیدگاه‌ها

*
*