define('DISALLOW_FILE_MODS', true); » تفاوت توابع مربوط به نوع داده ها در PHP

طراحی قالب وردپرس با آرتاباز

بیش از 0 پروژه طراحی وب سایت و 0٪ رضایت مشتریان فقط کافیست نمونه کارها را مشاهده کنید.

تفاوت توابع مربوط به نوع داده ها در PHP

php artabaz.ir

یکی از نکات به ظاهر کوچک اما فوق العاده مهم در پی اچ پی، فهم صحیح از نحوه و جایگاه استفاده این توابع و حالت هاست:

فرض کنین متغیری به نام $artabaz داریم.

حالا میخوایم این ها رو برای اون بررسی کنیم:


if(empty($artabaz))
if(is_null($artabaz))
if(isset($artabaz))
if($artabaz)

من به شخصه در خیلی از کدها دیدم که افراد به استثناءهایی که ممکن هست در هرکدوم از این توابع به وجود بیاد توجه نمیکنن و از روی عادت از یک نوع تابع در تمام برنامه هاشون استفاده میکنن.

مثلا اغلب، افرادی که کمی در پی اچ پی حرفه ای تر میشن، برای سرعت دادن به کارهاشون، در هنگام بررسی متغییرها، صرفا از کد زیر استفاده میکنن:


if($artabaz)
{
// something
}
else
{

}

این کد در اغلب مواقع  پاسخگوی نیازها هست اما اگر ما از این کد در فرمی استفاده کنیم که در اون عدد صفر هم به عنوان ورودی قابل قبول باشه، اونوقت این شرط ایراد داره چراکه اگر مقدار آرتاباز برابر 0 باشه اونوقت میره داخل else … و این در حالی هست که کاربر ما اجازه وارد کردن ورودی صفر رو هم داشته اما ما به اون اجازه رو ندادیم!

در واقع شرط بالا معادل نقیض empty() هست.

یا گاهی اوقات دیده میشه که افراد اشتباها برای اینکه تهی بودن یک متغییر رو بررسی کنن از isset استفاده میکنن.

کد زیر رو در نظر بگیرین:


$artabaz=''
if(isset($artabaz))
{
// something
}
else
{

}

در اینجا، با اینکه متغییر تهی هست اما شرط true اجرا میشه.

پس می بایست در استفاده از این توابع نهایت دقت رو داشته باشیم.

در ادامه جدولی از حالت های مختلف رو براتون آوردیم:

Expression

gettype()

empty()

is_null()

isset()

if($artabaz)

$artabaz = “”; string TRUE FALSE TRUE FALSE
$artabaz = null; NULL TRUE TRUE FALSE FALSE
var $artabaz; NULL TRUE TRUE FALSE FALSE
$artabaz is undefined NULL TRUE TRUE FALSE FALSE
$artabaz = array(); array TRUE FALSE TRUE FALSE
$artabaz = false; boolean TRUE FALSE TRUE FALSE
$artabaz = true; boolean FALSE FALSE TRUE TRUE
$artabaz = 1; integer FALSE FALSE TRUE TRUE
$artabaz = 42; integer FALSE FALSE TRUE TRUE
$artabaz = 0; integer TRUE FALSE TRUE FALSE
$artabaz = -1; integer FALSE FALSE TRUE TRUE
$artabaz = “1″; string FALSE FALSE TRUE TRUE
$artabaz = “0″; string TRUE FALSE TRUE FALSE
$artabaz = “-1″; string FALSE FALSE TRUE TRUE
$artabaz = “php”; string FALSE FALSE TRUE TRUE
$artabaz = “true”; string FALSE FALSE TRUE TRUE
$artabaz = “false”; string FALSE FALSE TRUE TRUE

اگر این مطلب را مفید ارزیابی کردید لطفا به اشتراک بگذارید .

۳ دیدگاه

  1. یوسف

    ممنون از آموزش خوبتون!
    موفق باشید.

  2. hosein

    سلام
    روز بخیر
    توی طراحی صفحات وردپرس امکان ذخیره و استفاده مجدد متغیرهای php وجود داره؟
    مثلا من در قسمت بالای صفحه میخوام id یک پست را ذخیره کنم.و پس از پایان حلقه و شرطها. در یک حلقه دیگر محتوای پست را بر اساس id ای که از قبل ذخیره کردم فراخوانی کنم و نمایش بدم. از متغیر های global استفاده کردم ولی بعد از خروج از حلقه و شرط مقدار متغیر از بین میره!
    طبق تجربه ای که دارید راه حلی به نظرتون میرسه برای حل این مشکل؟

    • webelizer

      باسلام
      اگر در همان صفحه میخواهید استفاده کنید نیازی به global نیست. کافیست تحت یک نام مناسب آن در متغییری ذخیره کنید و سپس تا انتهای آن صفحه از هر نقطه ای که نیاز باشد قابل فراخوانی خواهد بود.
      ابتدا متغییر را در محل مورد نیاز echo کنید ببینید مورد چپ میشود؟ اگر مشکلی نبود آنگاه احتمالا مشکل از کوئری تان هست.

ارسال نظر

» دیدگاه تان را فارسی بنویسید ، دیدگاه های انگلیسی و فینگلیش تایید نمی شوند .