منبع اصلی نوشتار زیر در این لینک قرار دارد

بازم یک نکته کوچک تو PHP

یکی از مشکلاتی که برنامه نویسهای تازه کار با اون خیلی برخورد میکنن، طرز برخورد PHP با اپراتورهای منطقیه. برای نمونه == که برای بررسی اینه که دو متغیر با هم برابرن یا نه.
کد ساده ای رو در نظر بگیرید مثل :

<?php
if ('string'==true)
	echo "It's equal!"

و خیلی ساده اینکه اینها برابرند و شرط درسته. در حقیقت PHP همه رشته ها رو به true تعبیر میکنه، مگه دو رشته به خصوص رو. اولی رشته ای که خالی باشه،‌ و دومی رشته ای که حاوی 0 (کاراکتر صفر) باشه. این دو تا برابر false هستن. یعنی دقیقا یک صفر داخل رشته.(اینم از اون استثناهای PHP هستش که نمیتونم درکش کنم، ولی اینجوریه دیگه! گفتن که رشته خالی با رشته حاوی یک عدد صفر کله گنده، و NULL و FALSE هر چهار تا برابرند! علت رو میتونم حدس بزنم ولی نمیتونم درکش کنم، به راحتی میتونست اینجوری نباشه، خصوصا اون رشته حاوی صفر منظورمه.)
برای اینکه رفتار شبیه C رو داشته باشید از اپراتور === (سه مساوی) استفاده کنید، این اپراتور علاوه بر مقدار نوع رو هم بررسی میکنه. یعنی این کد :

<?php
if ('string'===true)
	echo "It's equal!"

دیگه مثل قبلی نیست. این حالت دیگه if درست نیست.
شاید بگید این خیلی سادست، چیزی که همیشه میشنوم! ولی وقت عمل که میشه، میبینم همین نکته کوچک چقدر افراد رو دچار دردسر میکنه! تا حدی که امروز یکی اومده و میگه که یه باگ تو PHP کشف کردم! (همون کد اولی رو) و باقیش هم که قابل حدسه! چون بار اول بود با اون شخص روبرو میشدم، نمیشد یهو جوابشو بدم، از یه طرف هم طرف کلی ادعا داشت، که مونده بودم اصلا چی میتونم بگم!

– یه خواهش از دوستان همشهری و حضوری! من یه برنامه نویسم، حرفه ای هم کار میکنم، ولی به خدا با هیچ کس کل کل ندارم!!!! عاجزانه خواهشمندم منو تو هیچ زمینه ای علم! نکنید. گر چه قد و قواره من فقط به درد علم میخوره و بس!



برچسب ها : , ,

به سیاره لینوکس امتیاز دهید

به اين صفحه امتياز دهيد