همه چیز درباره ی تابع isset و empty در PHP
مهندس محسن حسن پور
این پست با مسیر متخصص php مرتبط است. مشاهده مسیر (Roadmap)
سلام به همه ی تاتژنی های عزیز با یک آموزش بسیار کاربردی در خدمت شما هستیم. اگر برنامه نویس PHP هستید حتما دو تابع empty() و isset() در PHP را دیده اید، امروز میخواهیم یکبار برای همیشه کاربرد این دوتابع را یاد بگیریم. یکی از معضلاتی که ما بعنوان برنامه نویس PHP با آن مواجه هستیم استفاده ی این دو تابع به اشتباه جای یک دیگر است. امروز قصد داریم هر آنچه که باید بعنوان برنامه نویس در مورد دو تابع isset() و تابع empty() در PHP بدانیم را به شما آموزش دهیم. در انتها تفاوت این دو تابع را بررسی خواهیم کرد تا درصد خطای خود را در کدنویسی به حداقل برسانیم.
ویدئو آموزش تابع isset و empty
چنانچه دیدن این ویدئو از حوصله ی شما خارج است می توانید این آموزش را بصورت متنی مطالعه کنید:
تابع isset و empty در PHP؛ بررسی کامل!
در این آموزش قراره با هم خیلی دقیق و ساده بفهمیم این دوتا تابع معروف توی PHP چه کاری انجام میدن، چه موقع باید ازشون استفاده کنیم، و چطور میتونن کمکمون کنن تا کدهای تمیزتر و بهینهتری بنویسیم. ابتدا به سراغ تابع isset می رویم:
تابع isset() در PHP
تابع isset() برای بررسی این استفاده میشه که چک کند:
- آیا یک متغیر تعریف شده ؟
- آیا مقدارش 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 را متوجه شده باشید. اگر هنوز سوالی برایتان باقی مانده است و یا یا مورد خاصی در پروژه هایتان تجربه کرده اید در بخش کامنت ها با ما و بقیه به اشتراک بگذارید.