تابع ()unset

در مطلب تعریف متغیرها و نمایش مقدار آنها در پی اچ پی و در بخش تبدیل گونه ها (نوع ها) از unset برای تبدیل گونه به مقدار NULL کمک گرفتیم. در این مطلب می خواهیم دو تابع ()unset و ()isset را آموزش دهیم. همچنین پیش از این تابع ()empty را آموزش داده ایم که یک نام یک متغیر را دریافت و بررسی می کند که آیا برای آن مقدار انتساب داده شده است یا خیر.

تابع ()unset برای از میان بردن (Destroy) یک متغیر به کار گرفته می شود. در شکل دوم بالا و در یکی مانده به پایان، می بینید که پس از تبدیل گونه به unset، مقدار متغیر برابر با مقدار پوچ (تهی) NULL شده است. unset شدن بوسیله تابع ()unset بستگی به محلی است که تابع فراخوانی شده است. اگر تابع درون یک تابع تعریف شده بوسیله کاربر فراخوانی شود، تنها متغیر را درون همان تابع کاربر unset می کند ولی همچنان متغیر در بیرون تابع قابل دسترسی است.

در کد شکل بالا می بینید که یک متغیر بالای تابع تعریف شده و سپس درون تابع آن را unset کرده ایم. پس برابر با شکل زیر، هیج مقداری برای متغیر age$ در خط ۷ از کد نشان داده نمی شود. ولی در خط ۱۲چون به متغیر بیرون از تابع و بدون unset کردن آن دسترسی داشته ایم، پس مقدار آن، یعنی عدد ۳۵ نشان داده شده است.

به عبارت دیگر در حالت بالا، تغییر درون تابع، به بیرون تابع اثری ندارد. ولی گونه دیگری نیز وجود دارد که اگر یک متغیر سراسری (Global) درون بدنه یک تابع، unset شود، تنها متغیر محلی درون تابع unset می شود ولی متغیر مقدار خود را همسان با زمان پیش از فراخوانی تابع نگهداری می کند. شکل زیر نمونه دیگری را نشان می دهد و اگر آن را اجرا کنید، مقدار bar، یعنی مقدار متغیر سراسری foo که در خط ۸ و پیش از فراخوانی تابع، مقدار دهی شده بود، بدون تغییر می ماند.

تابع ()isse

تابع ()isse برای بررسی اینکه آیا متغیری تنطیم (Set) شده است یا نه به کار گرفته می شود به این صورت که اگر متغیر تعریف شده باشد و مقداری جز NULL داشته باشد، پس تابع ()isset مقدار true برگشت می دهد، وگرنه مقدار FALSE برگشت داده خواهد شد. در شکل های زیر در خط چون هنوز متغیری به نام a$ تعریف نشده، پس مقدار false برگشت داده می شود. در خط های ۵ و ۸ و ۱۱ چون به ترتیب بدون مقدار، با مقدار رشته خالی و مقدار NULL تعریف شده، پس بازهم خروجی آن برابر با false است و تنها در خط ۱۴ است که مقدار true برگشت داده می شود.

در مطلب های پیش رو بیشتر با کاربرد تابع های ()empty و ()isset آشنا خواهید شد، زمانی که مطلب متدهای GET و POST در پی اچ پی را آموزش می دهیم. زمانی که لازم داریم تا بررسی کنیم که آیا کلیدی ویژه برای یک آرایه انجمنی سراسری تنظیم شده است و اینکه آیا مقداری برای آن انتساب داده شده است. در این زمان به ترتیب تابع های ()isset و ()empty را به کار خواهیم برد. هر سه این تابع ها برای متغیرها از هر گونه عددی، ممیز شناور، رشته و آرایه و حتی شی ها یا نمونه های کلاس ها قابل به کارگیری هستند.

کد شکل زیر نمونه دیگری از کاربرد تابع ()isset را نشان می دهد. نخست متغیر a$ با مقدار foo ایجاد شده است، سپس درون عبارت if … else بررسی می شود که آیا متغیر a$ تنظیم شده است. چون متغیر a$ تعریف شده و هم مقدار آن غیر NULL است، پس از خروجی تابع ()isset برابر با TRUE است، پس متغیر b$ در خط ۵ ایجاد و با مقدار رشته true مقداردهی می شود.

تابع ()is_null

اگر متغیری را دارای مقدار NULL باشد، پس تابع ()is_null مقدار true را برگشت می دهد. به عبارات دیگر اگر متغیر را بدون مقدار، یا با رشته خالی، یا با مقدارهای true یا false و یا هر مقدار عددی و رشته ای دیگر تعریف کرده باشیم، به معنی NULL (پوچ) نبودن آن است و تابع ()is_null مقدار false برگشت می دهد. توجه کنید که تابع های ()isset و ()is_null با یکدیگر متفاوت هستند، زیرا اگر متغیری تعریف شده را به تابع ()is_null بفرستیم بی معنا است ولی می توانیم متغیری تعریف نشده را به تابع ()isset نیز بفرستیم. در پایان بازهم تاکید می کنیم تمامی سه تابع این مطلب برای آرایه ها نیز به درستی کار می کنند.

تابع ()is_bool برای بررسی این که آیا متغیر از گونه boolean است یا نه.

تابع ()is_int برای بررسی این که آیا متغیر از گونه integer است یا نه.

تابع ()is_numberic برای بررسی این که آیا متغیر از گونه numeric (عدد صحیح یا ممیز شناور) یا numeric string (رشته ای که تنها شامل عددها باشد) است یا نه.

تابع ()is_float برای بررسی این که آیا متغیر از گونه float است یا نه.

تابع ()is_string برای بررسی این که آیا متغیر از گونه string است یا نه.

تابع ()is_array برای بررسی این که آیا متغیر از گونه array است یا نه.