تفاوت تابع isset ، empty و is_null در php

  • آپدیت شده در تاریخ

تابع isset ، empty و is_null در php از توابع مربوط به نوع داده ها در php است که برای چک کردن خالی بودن یا نبودن مقدار یک آرایه ، متغیر استفاده می شود .

تابع isset چک میکند آیا یک متغیر دارای مقدار است یا نه

تابع empty() چک می کند که آیا متغیر پاس داده شده خالی است یا نه .

تابع is_null() چک میکند که آیا متغییر به به صورت NULL تعریف شده است یا نه

دو تابع isset و empty از مجموع توابع boolean هستند و مقدرای که برمیگردانند true یا false میباشد ، این دوتابع به ظاهر کار یکسانی انجام میدهند و در واقعا کاملا متفاوت هستند! در ادامه با ذکر مثال کاملا توضیح خواهیم داد

وظیفه تابع isset این هست که چک کند آیا یک متغیر وجود دارد یا خیر ، اگر وجود داشت مقدار true و اگر وجود نداشت مقدار false را برمیگرداند ، نکته ای که وجود دارد این هست که isset مقدار خالی یا پر بودن متغیر را چک نمیکند چون بهش ربطی نداره! بلکه فقط وجود یا عدم وجود متغیر را بررسی میکند در صورتی که تابع empty فقط پر یا خالی بودن متغیر را چک میکند و اگر دارای مقدار بود true و اگر مقداری نداشت false !

نکته دیگری که وجود دارد این هست که اگر متغیر وجود نداشت و پر یا خالی بودن آن را با empty چک کنیم این تابع فرض میکند که متغیر خالی میباشد و مقدار true را برمیگرداند

خب ، حالا تفاوت این ها را پیدا کنید !

تفاوت تابع isset ، empty و is_null در php

احساس می کنم موثر ترین راه برای درک تفاوت بین تابع isset ، empty و is_null در php استفاده از جدول زیر است .

“” “apple” NULL FALSE ۰ undefined
empty() TRUE FALSE TRUE TRUE TRUE TRUE
is_null() FALSE FALSE TRUE FALSE FALSE ERROR
isset() TRUE TRUE FALSE TRUE TRUE FALSE

کد درک تفاوت تابع isset ، empty و is_null

برای کپی صحیح و کامل کدها ، دابل کلیک کرده تا وارد محیط سفید و کپی شوید در غیر اینصورت امکان دارد اجرای کدها با مشکل روبرو شود

خروجی :

خب دیدید که توابع isset ، empty و is_null در php تفاوت هایی با هم دارند که استفاده درست از آنها به ما در چک کردن مقدار های یک متغیر یا آرایه کمک بسیاری خواهد کرد و از بروز خطاهای Notice می توان با چک کردن مقادیر ، جلوگیری کرد .

هرگونه مشکلی در پیاده سازی کد ها داشتید از قسمت نظرات ارسال کنید . سریعا پاسخگوی سوالات شما هستیم .

موفق باشید

 

حسن شفیعی توسعه دهنده وب و موبایل مدیر سایت علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندروید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید. برایتهیه هاست مطمین و پرسرعت کلیک کنید
مطالب زیر را حتما بخوانید
دیدگاه کاربران (۱۱)

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. marzieh ۲ شهریور ۱۴۰۰

    سلام وخسته نباشید ممنون بابت مطالب مفیدتون. من داخل دسته بندی ها parent_idدارم و میتونه null باشه استادم این شرط رو نوشته و خواسته تکمیل کنیم اما من نتونستم ممنون میشم راهنمایی م کنید واقعا من گیج شدم.
    public function store(Request $request)
    {
    $request->validate([
    ‘picture’ =>’required|image|max:512|mimes:jpeg,png,gif,jpg’,
    ‘parent_id’ =>’nullable|numeric|exists:categories,id’,
    ‘title’ =>’required|string|min:2|max:255′,
    ]);
    $data = $request->only([‘title’]);
    $data[‘picture’]= $this->uploadFile($request->picture);

    if(isset($request[‘parent_id’])){
    /** @var Category $parent */
    $parent = Category::where(‘id’, $request[‘parent_id’])->first();

    if($parent->parent_id){

    }
    }

    پاسخ
    1. حسن شفیعی ۳ شهریور ۱۴۰۰

      سلام.
      در مورد کدهای غیر از کدهای این صفحه راهنمایی نمیشه.

      پاسخ
  2. Faez ۲۹ بهمن ۱۳۹۹

    با سلام خیلی خیلی ممنون واقعا عالی بود موفق باشید 🙂

    پاسخ
  3. sobhan ۸ شهریور ۱۳۹۸

    با سلام و عرض خسته نباشید از مقاله ی خوبتون

    واقعا عالی بود و من رو از ابهام خارج کرد . فقط ی جاش فکر کنم اشتباه تایپس داره . اونجاش که نوشته « اگر دارای مقدار بود true و اگر مقداری نداشت false ! » من فکر کنم بر عکس نوشته شده .

    باز هم ممنونم از اینکه دانش خودتون رو به اشتراک می گذارید .

    پاسخ
    1. حسن شفیعی ۸ شهریور ۱۳۹۸

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

      پاسخ
  4. رضا ۱۰ مرداد ۱۳۹۷

    سلام خسته نباشید ببخشید میگم من یک فایل Php دارم و میخوام با صدا زدن دو متغیر از طریق یک کویری در دیتابیس مقادیری ثبت شود اما هر کاری میکنم این دو متغیر isset نمیشن! به عبارتی دو متغیر را در مرورگر جلوی فایل php اولی رو با علامت سوال و بعدی رو هم با & isset‌میکنم ولی با شرطی که گذاشتم از طریق همین تابع isset() برام چاپ میکنعه که isset نشده متغیر ها.

    پاسخ
    1. حسن شفیعی ۱۰ مرداد ۱۳۹۷

      سلام . ممنون . حتما اشتباه نوشتید . همین کد مثال ساده رو ببینید و دوباره تست کنید.

      موفق باشید.

      پاسخ
      1. Reza ۱۰ مرداد ۱۳۹۷

        اهان مرسی (: حتما یه بررسی میکنم

        پاسخ
  5. امین ۱۹ خرداد ۱۳۹۷

    سپاس ممنون خسته نباشید

    پاسخ
  6. امین ۱۸ خرداد ۱۳۹۷

    سلام خسته نباشید؛چجور میشه در php با چک کردن لینک تشخصی داد صفحه وجود داره یا نداره،مثلا برای صفحه ای های که وجود نداری تشخص بده این صفحه وجود ندارد با سپاس .”Page Not Found “

    پاسخ
    1. حسن شفیعی ۱۸ خرداد ۱۳۹۷

      سلام ممنونم . به سادگی با بررسی هدرها میتونید این مورد رو چک کنید.

      $headers = get_headers($url, 1);

      خانه اول این آرایه ای که برگشت داده میشه شامل وضعیت درخواست است :

      Array
      (
      [۰] => HTTP/1.1 200 OK
      [Date] => Sat, 29 May 2018 12:28:14 GMT
      [Server] => Apache/1.3.27 (Unix) (Red-Hat/Linux)
      [Last-Modified] => Wed, 08 Jan 2003 23:11:55 GMT
      [ETag] => “۳f80f-1b6-3e1cb03b”
      [Accept-Ranges] => bytes
      [Content-Length] => ۴۳۸
      [Connection] => close
      [Content-Type] => text/html
      )

      با CRUL هم میتونید چک کنید ولی تابع بالا ساده تر است.

      موفق باشید.

      پاسخ
دوره های آموزشی