محمد المصري12 نشر 8 سبتمبر 2021 أرسل تقرير نشر 8 سبتمبر 2021 سلام عليكم اواجه تحذير خفيف اللهجة من phpstorm كالتالي Strict types declaration is missing و عندما اقوم بالاصلاح يقوم باضافة السطر التالي تلقائيا للملف declare(strict_types=1); السؤال ، ما معنى هذا الكود ببساطة ، انا قرات عنه في المواقع الاجنبيه بس مش مستوعب هايفيدني بايه وجود السطر ده في الملفات الخاصة بي و عدم وجوده هايضرني في ايه ؟ 1 اقتباس
1 شرف الدين حفني نشر 8 سبتمبر 2021 أرسل تقرير نشر 8 سبتمبر 2021 يجب أولاً أن تعلم بوجود ما يسمى بال Scalar types والذي يعني نوع بيانات يحمل قيمة واحدة مثل Integer, string, float ,boolean عكسه لدينا الcompound types مما يعني نوع بيانات يحمل أكثر من قيمة مثل array, map , حسناً , نرجع لسؤالك ماهو الstrict types? كما تعلم على الرغم من توافر إمكانية تعريفك للمتغير كنوع معين مثل function test(int $a, float $b) : int { return $a + $b; } test("sharaf",4) هنا قمنا بتعريف الparameters التي تمر بالدالة test أنهم من النوع int & float على الرغم من ذلك قمنا بتمرير parameters من النوع string, int ومع ذلك سيعمل البرنامج دون أن يلقي خطأ, فائدة الstrict decleration أن يقوم بإلقاء خطأ عند محاولة تمرير بيانات من نوع غير المطلوب, وذلك لضمان أن يقوم المبرمج بكتابة برنامج منظم بشكل أكبر وأسهل للقراءة وأقل عرضة للbugs , فمثلاً الكود بالأعلى إن قمنا بتشغيله عند تفعيل الوضع الصارم(strict declaration) سيقوم بإلقاء خطأ Fatal error: Uncaught TypeError 1 اقتباس
1 Hassan Hedr نشر 8 سبتمبر 2021 أرسل تقرير نشر 8 سبتمبر 2021 في لغة PHP يمكنك التصريح عن نوع متحول ما لسهولة التطوير حيث سيستخدم المحرر هذه التصاريح لمساعدتك في التطوير (ينبهك في حال تمرير متحول من نوع بدل آخر) ولكن هذا التنبيه سيقتصر على المحرر فقط، فعند تنفيذ الشيفرة ستعمل بشكل طبيعي، ولكن قد يسبب ذلك مشاكل مثال // تابع لحساب ناتج ما، يتوقع منه إعادة عدد صحيح function calculate(int $a, int $b){ return $a + $b; } $user->balance = calculate(5, 3.5); // $user->balance = 8 ناتج خطأ لتجنب هذه المشاكل فإن المحرر يقترح عليك كتابة declare(strict_types=1) في رأس الملف وذلك سيخبر PHP عند تنفيذ الشيفرة أن يلتزم بتصاريح الأنواع التي حددتها ويرمي خطأ في حال كانت الأنواع غير متطابقة ذلك سيجنبك الخطأ السابق فعند تنفيذ السطر التالي لن يتم حساب نتيجة خطأ دون أن تشعر ولكن سيتوقف التنفيذ ويظهر خطأ $user->balance = calculate(5, 3.5); // Fatal error: Uncaught TypeError 1 اقتباس
السؤال
محمد المصري12
سلام عليكم
اواجه تحذير خفيف اللهجة من phpstorm كالتالي
و عندما اقوم بالاصلاح يقوم باضافة السطر التالي تلقائيا للملف
السؤال ، ما معنى هذا الكود ببساطة ، انا قرات عنه في المواقع الاجنبيه بس مش مستوعب
هايفيدني بايه وجود السطر ده في الملفات الخاصة بي و عدم وجوده هايضرني في ايه ؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.