استفاده از عملگرهای comparison در انواع مختلف داده ها

پرسیده شده
فعالیت 1502 روز پیش
دیده شده 629 بار
1

عرض سلام و وقت بخیر خدمت استاد صالحی عزیز... عرض کنم خدمتتون در پایان این جلسه آموزشی خیلی خوب و کامل در مورد عملگرهای مقایسه ای توضیح دادید... اما ای کاش نوع داده های بیشتری رو با هم براساس این عملگر مقایسه می کردید.... مثلا من از طریق عملگر بزرگتر ( < ) یک مقایسه بین داده رشته ای و داده عددی برقرار کردم... و نتیجه این مقایسه true شد.. یعنی عدد رو بزرگتر از رشته در نظر گرفت... که میخواستم محبت کنید در این راستا توضیح بدید که دو نوع داده مختلف چطور مقایسه میشن براساس کوچکتری و بزرگتری؟ آیا تبدیل انجام میشه؟ من چنین مقایسه ای کردم و جوای true شد:

 

10 > "Alireza" ==> result = true

 

فایل پیوست

9
حذف شده

سلام.

توو PHP در عملگرهای مقایسه ای عملیات Casting بصورت اتومات انجام میشود.

وقتی عددی رو با رشته مقایسه میکنید، اون رشته اس که Cast میشه به عدد.

رشته اگر با عدد شروع میشد، مثلا "۷Learn" این رشته تبدیل میشد به عدد ۷

اما Alireza تبدیل میشه به ۰

بنابراین ۱۰ > ۰

برای مثال:

var_dump(0 == 'Alireza');     // 0 == 0 -> true

 

یک مقاله نوشتم در مورد عملگرها و تمام جزئیاتشو اوردم، مقاله ی کاملیه و جواب تمام سؤالاتتو میگیری. میتونی مطالعه کنی:

معرفی عملگرها(قسمت اول)

فایل پیوست

محسن موحد

توسط

محسن موحد

28 اسفند 98

حذف شده
بسیار عالی تشکر... چون در جاوا اسکریپت چنین مقایسه ای به جهت اینکه نوع داده ها رو متفاوت میدونه مقدار false رو برای بررسی بزرگتر بودن یا کوچکتر بودن عدد از رشته و یا بالعکس برمیگردونه... مگر اینکه خودت از طریق تابع number یا parseInt داده رشته ای رو به عدد تبدیل کرده باشیم... برای همین برام ابهام بود که چرا تو php بدون تبدیل این شرط درست میشه و با عدد 10 رشته رو مقایسه میکنه... ممنون جناب موحد از راهنمایی شما...
حذف شده
جالب بود
یوسف آرمات

10 خرداد 99