بي إتش بي هي واحدة من لغات البرمجة الأكثر شعبية لتطوير الشبكة. لديها الكثير من الميزات والمرونة ، ومع ذلك ، مثل أي لغة أخرى ، فهي عرضة للخطأ. واحدة من هذه الأخطاء الشائعة في فب هي الرسالة "يجب تمرير المتغيرات فقط بالرجوع" ، والتي يمكن أن تسبب الارتباك وتعقيد عمل المطور.
يحدث هذا الخطأ عندما يتم تمرير تعبير كوسيطة إلى دالة أو طريقة ، وليس متغيرا. في الواقع ، فب يتطلب أن المتغيرات فقط أن تستخدم كمعلمات مرت بالرجوع. خلاف ذلك ، سوف فب رمي استثناء مع الرسالة "يجب أن يتم تمرير المتغيرات فقط بالرجوع".
هناك عدة أسباب لهذا الخطأ. أولا ، قد يحدث خطأ عند تمرير قيمة بسيطة (مثل رقم أو سلسلة) بدلا من متغير. ثانيا ، قد يكون سبب الخطأ باستخدام بناء جملة غير صحيح أو طلب استدعاء دالة غير صحيح. أخيرا ، قد يكون الخطأ مرتبطا باستخدام وظائف أو طرق قديمة لا تدعم تمرير المعلمات بالرجوع إليها.
لإصلاح الخطأ "يجب تمرير المتغيرات فقط بالرجوع" ، تحتاج إلى مراجعة التعليمات البرمجية بعناية والتأكد من تمرير المتغيرات كوسائط إلى وظائف أو طرق. إذا لم يكن تمرير قيمة بالرجوع ضروريا ، فيمكنك استخدام عامل نسخ (على سبيل المثال ، copy نسخ = value قيمة) لإنشاء نسخة من القيمة وتمرير هذه القيمة المنسوخة.
وبالإضافة إلى ذلك ، إذا حدث الخطأ "يجب تمرير المتغيرات فقط بالرجوع" ، فمن المستحسن أن تولي اهتماما لإصدار فب المستخدمة في المشروع. في بعض الإصدارات القديمة من فب ، تم إصلاح بعض المشاكل مع تمرير المعلمات بالرجوع. في هذه الحالة ، يمكن أن يساعد تحديث إصدار فب في إصلاح هذا الخطأ.
في الختام ، يحدث الخطأ" يجب تمرير المتغيرات فقط بالرجوع " عندما يتم تمرير التعبيرات ، وليس المتغيرات ، كوسائط إلى وظائف أو طرق. لتجنب هذا الخطأ ، تحتاج إلى التحقق بعناية من شفرة المصدر والتأكد من استخدام المتغيرات فقط كوسائط. ومن المستحسن أيضا استخدام أحدث إصدارات فب لتجنب المشاكل مع تمرير المعلمات عن طريق الارتباط.
- الأسباب الرئيسية للخطأ فب
- كيفية تحديد الخطأ "يجب تمرير المتغيرات فقط بالرجوع إليها"
- ما هي المشاكل التي يمكن أن يسببها هذا الخطأ?
- طرق لإصلاح الخطأ "يجب تمرير المتغيرات فقط بالرجوع إليها"
- طرق لمنع الخطأ "يجب تمرير المتغيرات فقط بالرجوع إليها"
الأسباب الرئيسية للخطأ فب
يحدث خطأ فب" يجب تمرير المتغيرات فقط حسب المرجع " في الحالات التالية:
- تمرير مرجع غير محدد كحجة بالرجوع. فب يدعم تمرير الحجج وظيفة بالرجوع ، ولكن فقط للمتغيرات. إذا كنت تحاول تمرير شيء ليس متغيرا ، مثل نتيجة دالة أو قيمة صفيف ، فستحصل على هذا الخطأ.
- الاستخدام غير الصحيح للروابط في كل حلقة. يحدث هذا الخطأ غالبا عند استخدام مفاتيح معينة أو قيم صفيف في حلقة فوريتش حسب المرجع. إذا كنت تحاول استخدام متغير ليس مرجعا أو مرجعا لعنصر صفيف غير موجود ، فستحصل على هذا الخطأ.
- تعيين غير صحيح لقيمة بالرجوع إليها. إذا حاولت تعيين قيمة لمتغير بالرجوع إليه باستخدام شيء ليس متغيرا ، مثل تعبير مباشر أو نتيجة دالة ، يحدث خطأ. يجب إجراء التعيين بالرجوع للمتغيرات فقط.
- استخدام الوظائف التي تتطلب تمرير وسيطة بالرجوع إليها. بعض الوظائف في فب تتطلب تمرير وسيطة بالرجوع إليها. إذا كنت تحاول تمرير عنصر صفيف غير متغير أو غير موجود ، فستحصل على هذا الخطأ.
- باستخدام نسخة قديمة من فب. وكانت بعض الإصدارات القديمة من فب أقل صرامة حول تمرير الحجج بالرجوع ويمكن تخطي الأخطاء التي الإصدارات الأحدث من فب الكشف عنها. لذلك ، إذا كنت تعمل مع إصدار قديم من فب ، قد تواجه مثل هذا الخطأ.
الآن بعد أن عرفنا الأسباب الرئيسية لخطأ فب "يجب تمرير المتغيرات فقط بالرجوع" ، دعونا ننظر في طرق لإصلاحه.
كيفية تحديد الخطأ "يجب تمرير المتغيرات فقط بالرجوع إليها"
الخطأ "يجب أن يتم تمرير المتغيرات فقط بالرجوع" يحدث في فب عندما يتم تمرير قيمة ليست متغير كوسيطة.
على سبيل المثال ، ضع في اعتبارك مثال الكود التالي:
في هذه الحالة ، تحصل وظيفة" الزيادة "على الوسيطة" 5 " ، وهي قيمة وليست متغيرا. يؤدي تمرير قيمة بدلا من متغير إلى الخطأ "يجب تمرير المتغيرات فقط بالرجوع إليها".
لتجنب هذا الخطأ ، من الضروري تمرير المتغيرات إلى الوظيفة ، وليس قيمها.
باستخدام المثال أعلاه ، يمكننا إصلاح الخطأ على النحو التالي:
في هذه الحالة ، نقوم بتمرير المتغير "value القيمة" بدلا من القيمة "5". الآن سيعمل الرمز بدون أخطاء.
ومن الجدير بالذكر أيضا أن فب لديه بعض الوظائف التي تتطلب تمرير الحجج بالرجوع إليها. في مثل هذه الحالات ، سيؤدي تمرير القيمة إلى حدوث خطأ. تحتاج إلى الرجوع إلى الوثائق أو الكود المصدري للوظيفة للتأكد من طريقة تمرير الوسائط.
ما هي المشاكل التي يمكن أن يسببها هذا الخطأ?
"يجب أن يتم تمرير المتغيرات فقط بالرجوع" خطأ في فب يمكن أن يسبب العديد من المشاكل التي يمكن أن تجعل من الصعب تنفيذ برنامج نصي أو يؤدي إلى عملية البرنامج غير صحيحة. بعض هذه القضايا تشمل:
- تشغيل غير صحيح للوظائف: قد يحدث هذا الخطأ عند محاولة تمرير ليس متغيرا ، ولكن نتيجة تنفيذ دالة بالرجوع (يتم تمرير متغير بالرجوع ، وليس نتيجة استدعائه). إذا كانت الدالة تتطلب تمرير وسيطة بالرجوع إليها ، فهذا يعني أنها تتوقع تغيير المتغير نفسه ، وليس قيمته. في هذه الحالة ، قم بتمرير المتغير مباشرة ، وليس نتيجة الوظيفة.
- نتائج غير متوقعة: إذا حدث خطأ وتم تمرير متغير بالرجوع ، فسيتم تمرير مؤشر إلى المتغير نفسه بدلا من قيمة المتغير. يمكن أن يؤدي هذا إلى نتائج غير متوقعة ، لأن الوظيفة ستغير المتغير نفسه ، وليس نسخته. على سبيل المثال ، إذا تم تغيير متغير تم استخدامه لاحقا في التعليمات البرمجية ، فقد يحدث سلوك برنامج غير متوقع.
- إعادة تعريف المتغيرات: في حالة حدوث خطأ يتم فيه تمرير متغير بالرجوع إليه ، ولكن لم يتم الإعلان عنه من قبل ، سيقوم فب بإنشائه تلقائيا. هذا يمكن أن يؤدي إلى إعادة تعريف المتغيرات الأخرى في التعليمات البرمجية ، ونتيجة لذلك ، إلى أخطاء أو تشغيل غير صحيح للبرنامج.
يكمن حل هذا الخطأ في التحقق بعناية من الوظائف التي تتطلب تمرير الوسيطات بالرجوع إليها ، وتمرير المتغيرات المناسبة لها ، بدلا من نتائج الوظائف. يجدر أيضا الانتباه إلى منطق البرنامج والتأكد من أن المرور بالرابط لا يسبب نتائج غير متوقعة.
طرق لإصلاح الخطأ "يجب تمرير المتغيرات فقط بالرجوع إليها"
أحد الأخطاء الشائعة عند العمل مع فب هو الخطأ" يجب تمرير المتغيرات فقط بالرجوع "("يجب تمرير الوسيطة بالرجوع"). يحدث هذا الخطأ عندما يتم تمرير تعبير إلى دالة أو طريقة ، وليس متغيرا.
لإصلاح هذا الخطأ ، يمكنك استخدام الطرق التالية:
- .
- . لاحظ علامة العطف قبل الوسيطة ، والتي تشير إلى أن الوسيطة يتم تمريرها بالرجوع إليها.
- .
- .
هذه ليست سوى بعض الطرق لإصلاح الخطأ "يجب تمرير المتغيرات فقط بالرجوع". في كل حالة محددة ، قد تحتاج إلى نهجك الخاص لإصلاح الخطأ ؛ من المهم فهم مبدأ تمرير الحجج بالرجوع ودراسة الكود بعناية للعثور على المشكلات المحتملة وإصلاحها.
طرق لمنع حدوث الخطأ "يجب تمرير المتغيرات فقط بالرجوع إليها"
يحدث الخطأ "يجب تمرير المتغيرات فقط حسب المرجع" في فب عندما يتم تمرير تعبير ، وليس متغير ، كوسيطة عند استدعاء وظيفة. يشير هذا الخطأ إلى أن الوظيفة تنتظر تمرير متغير ، ولكنها تتلقى شيئا آخر.
لمنع حدوث هذا الخطأ ، يمكنك استخدام الطرق التالية:
- .
- إلى الوظيفة.
- استخدام وظائف مجهولة: وظائف مجهولة تسمح لك لتمرير التعبيرات إلى وظيفة دون الحاجة إلى إنشاء متغير. على سبيل المثال ، يمكنك تحديد وظيفة مجهولة والاتصال بها على الفور في وسيطة الوظيفة التي يتم استدعاؤها.
- تغيير رمز الوظيفة: إذا كنا نتحدث عن وظيفة مخصصة ، فيمكنك تغيير رمزها بحيث يقبل تعبيرا بدلا من متغير.
الاستخدام الدقيق للمتغيرات عند استدعاء وظائف في فب سيساعد على تجنب الخطأ"يجب تمرير المتغيرات فقط بالرجوع". سيضمن ذلك التنفيذ الصحيح للبرنامج وتجنب سلوك التعليمات البرمجية غير المتوقع.