خطای Notice در PHP چیست و چگونه آن را برطرف کنیم ؟

خطای Notice در PHP چیست و چگونه آن را برطرف کنیم ؟

خطای Notice در PHP – این خطا را می توان جز soft error ها دانست و مواجه شدن با این خطا باعث مسدود شدن برنامه نمی شود .

این خطا زمانی پیش می آید که بخواهید یک متغیر را که تعریف نشده باشد را echo کنید و یا بخواهید به index که در یک آرایه تعریف نشده باشد دسترسی پیدا کنید .

مواجه شدن با Notice ارور ها به صورت عملی

خطای Undefined variable

به کد زیر توجه کنید :

echo $data;


متغیری با نام data تعریف نشده و ما می خواهیم به آن دسترسی پیدا کنیم . منطقی است که Notice دریافت کنیم .

حال اگر آن را به این شکل تعریف کنیم دیگر خبری از Notice نخواهد بود .

$data = "rapidcode";
echo $data;


بررسی یک نمونه دیگر خطای Notice در PHP

خطای Undefined offset

$list = ['alfa' , 'arad']; // 0 => alfa , 1 => arad , 

echo $list[2];

این خطا هم در PHP به این دلیل به وجود می آید که که می خواهیم به یک عضو از آرایه دسترسی پیدا کنیم که حتی تعریف هم نشده .

برای رفع آن باید یک عضو دیگر به آن اضافه کنیم که index ، دوم آن دارای مقدار باشد و تعریف شده باشد .

$list = ['alfa', 'arad']; // 0 => alfa , 1 => arad ,
$list[] = "bob";

echo $list[2];


خطای Undefined index

این خطا هم شباهت زیادی به ارور undefined offset دارد با این تفاوت که به جای مقدار دهی پیش فرض آرایه خودمان برای هر عضو یک keyname تعریف می کنیم . در کد پایین می خواهیم به عضوی که دارای نام age هست دسترسی پیدا کنیم در حالی تعریف نشده است .

$list = ['first_name' => 'Poorya', 'last_name' => 'Niknam'];

echo $list['age'];


برای حل این خطا کافی است که به کد زیر تغیر دهید :

$list = ['first_name' => 'Poorya', 'last_name' => 'Niknam'];

$list['age'] = 25;

echo $list['age'];

PHP.NET

ارسال نظر

جهت استفاده از کد حتما از تگ pre استفاده نمایید .

لیست نظرات

  1. حسین
    حسین

    سلام. خطای Notice در وردپرس به چه معنیه و چطور حل میشه؟؟

    30 شهریور 1399 | 12:08:07
  • حسین باقری
    حسین باقری

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

    01 مهر 1399 | 07:09:43
contact us