همه چیز درباره ی تابع isset و empty در PHP

منتشر شده در 14 آوریل 2025 آخرین به روز رسانی در 14 آوریل 2025
مهندس محسن حسن پور
28 0
تابع empty و تابع isset در PHP

این پست با مسیر متخصص php مرتبط است. مشاهده مسیر (Roadmap)

سلام به همه ی تاتژنی های عزیز با یک آموزش بسیار کاربردی در خدمت شما هستیم. اگر برنامه نویس PHP هستید حتما دو تابع empty() و isset() در PHP را دیده اید، امروز میخواهیم یکبار برای همیشه کاربرد این دوتابع را یاد بگیریم. یکی از معضلاتی که ما بعنوان برنامه نویس PHP با آن مواجه هستیم استفاده ی این دو تابع به اشتباه جای یک دیگر است. امروز قصد داریم هر آنچه که باید بعنوان برنامه نویس در مورد دو تابع isset() و تابع empty() در PHP بدانیم را به شما آموزش دهیم. در انتها تفاوت این دو تابع را بررسی خواهیم کرد تا درصد خطای خود را در کدنویسی به حداقل برسانیم.

ویدئو آموزش تابع isset و empty

چنانچه دیدن این ویدئو از حوصله ی شما خارج است می توانید این آموزش را بصورت متنی مطالعه کنید:

تابع isset و empty در PHP؛ بررسی کامل!

در این آموزش قراره با هم خیلی دقیق و ساده بفهمیم این دوتا تابع معروف توی PHP چه کاری انجام میدن، چه موقع باید ازشون استفاده کنیم، و چطور می‌تونن کمکمون کنن تا کدهای تمیزتر و بهینه‌تری بنویسیم. ابتدا به سراغ تابع isset می رویم:

تابع isset() در PHP

تابع isset() برای بررسی این استفاده میشه که چک کند:

  1. آیا یک متغیر تعریف شده ؟
  2. آیا مقدارش null است یا خیر

اگر متغیر تعریف شده باشد و مقدارش null باشد مقدار true برگردانده می شود و اگر متغیر تعریف نشده باشد و یا مقدار آن متغیر برابر null باشد تابع isset مقدار false را برمی گرداند. به مثال زیر توجه کنید:

<?php

$test = "hello";
var_dump(isset($test)); // خروجی: bool(true)

$foo = null;
var_dump(isset($foo)); // خروجی: bool(false)

var_dump(isset($bar)); // خروجی: bool(false) چون $bar اصلاً تعریف نشده

نکته: اگر چند متغیر رو با هم داخل isset() بنویسید، فقط زمانی true برمی‌گردونه که همه‌شون تعریف شده باشن و مقدارشون null نباشه.

تابع empty() در PHP

این تابع بررسی می‌کنه که آیا یک متغیر خالی هست یا نه. خالی یعنی چی؟ موارد زیر مصداقی از خالی بودن یک متغیر هستند:

  • “” (رشته‌ی خالی)
  • 0 (عدد صفر)
  • 0.0 (عدد اعشاری صفر)
  • “0” (رشته‌ای شامل صفر)
  • [] (آرایه‌ی خالی)
  • null
  • false
$var1 = "";
var_dump(empty($var1)); // خروجی: bool(true)

$var2 = 0;
var_dump(empty($var2)); // خروجی: bool(true)

$var3 = "PHP";
var_dump(empty($var3)); // خروجی: bool(false)

var_dump(empty($notSet)); // خروجی: bool(true) حتی اگر تعریف نشده باشه

نکته: اگر یک متغیر تعریف نشده باشد، تابع empty مقدار true را برای آن متغیر بر می گرداند

تفاوت تابع isset و تابع empty در PHP

در واقع می توان گفت:

ویژگی isset() empty()
بررسی می‌کنه آیا متغیر تعریف شده و null نیست؟
بررسی می‌کنه آیا مقدار متغیر “خالی” هست؟
اگر متغیر تعریف نشده باشه خطا میده؟
مقدار null رو چطور بررسی می‌کنه؟ false true
مقدار 0 رو چطور بررسی می‌کنه؟ true true

حرف آخر اینکه:

وقتی می‌خواهید فقط مطمئن شوید که متغیر وجود داره و مقدارش null نیست باید از isset() استفاده کنید.
و وقتی می‌خواهید مطمئن شوید متغیر “خالی” است یا نهباید از empty() استفاده نمایید.

خب به پایان آموزش رسیدیم. امیدوارم تفاوت تابع isset و تابع empty در PHP را متوجه شده باشید. اگر هنوز سوالی برایتان باقی مانده است و یا یا مورد خاصی در پروژه هایتان تجربه کرده اید در بخش کامنت ها با ما و بقیه به اشتراک بگذارید.