
در این آموزش میخواهیم به علت وقوع و راهکارهای رفع خطای Fatal error: Uncaught TypeError: Argument 1 passed to X must be of the type Y در کدهای PHP بپردازیم. همانطور که میدانیم بر اساس نوع زبان و متدی که در اجرای کدها بکار گرفته میشود میتوان شرایط متنوعی برای بروز خطا مواجه شد. در حین طراحی سایت براساس بسیاری از عوامل ، خطاها و ارورها در بسترهای مختلف سخت افزاری و نرم افزاری سمت سرور یا کلاینت میتوانند طیف گسترده ای از وضعیت ها را به خود بگیرند. در ادامه برای تشریح این ارور بخصوص همراه ما باشید.
متن خطایی که صادر میشود به صورت زیر است:
Fatal error: Uncaught TypeError: Argument 1 passed to X must be of the type Y
این خطا زمانی رخ میدهد که تابعی به آرگومانی با نوع نادرست ارسال کند.
نمونه خطا:
1 2 3 4 5 6 7 |
<?php function test(int $x) { echo $x; } test("Hello"); // خطا: باید یک عدد (integer) ارسال شود، نه یک رشته (string) ?> |
راه حل رفع خطا:
بررسی کنید که نوع دادههای ورودی با نوع متغیرهای مورد نیاز همخوانی داشته باشد.
1 2 3 4 5 6 7 |
<?php function test(int $x) { echo $x; } test(10); // خروجی: 10 ?> |
تبریک این خطا هم رفع شد. کاملا مشخص هست که مطمئنا برای حل این خطا راه های دیگری هم وجود دارند که میتوانند ساده تر یا سخت تر ازین روش پیشنهادی ما باشند. خوشحال میشویم که اگر راهکار دیگری سراغ دارید و یا در راه حل های ما اشکال یا ایرادی مشاهده کرده اید از طریق ارسال کامنت در زیر این پست ، به ما کمک کنید تا بتوانیم بانک اطلاعاتی جامع و کاملی از اطلاعات در دسترس سایر توسعه دهندگان ایرانی قرار دهیم.
همچنین برای دیدن سایر آموزش ها میتوانید از طریق لینک بانک خطاها و ارورها اقدام فرمایید.