🔴زبان PHP وقتی زیادی باهات راه میاد، ممکنه دردسر درست کنه!
یکی از ویژگیهای جالب PHP اینه که در بعضی شرایط خودش سعی میکنه نوع دادهها رو تبدیل کنه تا عملیات موردنظر انجام بشه.
مثلاً ممکنه فکر کنی داری با یک عدد کار میکنی، ولی PHP با توجه به context و نوع عملگر، نوع داده رو تبدیل کنه و نتیجهای بده که دقیقاً انتظارشو نداشتی 😅
به این رفتار میگن Type Juggling.
در پروژههای کوچیک شاید خیلی به چشمت نیاد، ولی وقتی وارد پروژههای بزرگتر مثل Laravel میشی، همین رفتارهای به ظاهر ساده میتونن تبدیل به باگهای عجیب و سختپیدا بشن.
برای همین چندتا چیز خیلی مهم میشن:
🔹 استفاده درست از Type Declaration
🔹 مناسب بودن Validation
🔹 استفاده از === به جای == وقتی مقایسه دقیق میخوای
🔹 شناخت رفتار Typeها در PHP
🔹 و در بعضی بخشها استفاده از strict_types
البته یه نکته مهم اینجاست:
قابلیت strict_types قرار نیست کل Type Juggling در PHP رو غیرفعال کنه!
این قابلیت بیشتر روی Type Declarationهای اسکالر در سطح فایل تأثیر میذاره و باعث میشه رفتار بعضی تبدیلهای ضمنی در فراخوانی توابع و متدها قابلپیشبینیتر بشه.
پس قرار نیست با فعال کردنش، ناگهان تمام مشکلات مربوط به Typeها حل بشه. 😄
💡 یه نکته مهمتر:
هرچی پروژه بزرگتر میشه، شناخت خود زبان برنامهنویسی اهمیت بیشتری پیدا میکنه.
خیلی از باگهای عجیب لزوماً از منطق پیچیده پروژه نیستن؛ گاهی فقط از یه فرض اشتباه درباره نوع دادهها شروع میشن.
زبان PHP در ظاهر سادهست، ولی وقتی عمیقتر میری، میبینی کلی جزئیات داره که شناختنشون میتونه کیفیت کدت رو خیلی بهتر کنه. 🚀
@CodeVerse_dev
Post #499
284
- ❤ 8