محمد عبد العاطى نشر 7 يوليو 2015 أرسل تقرير مشاركة نشر 7 يوليو 2015 لدى مشكلة في فهم أولوية المعاملات في لغة ال php ، على سبيل المثال النص البرمجي التالي<?php $x = 1; echo 1 + $x++; ?>من المفترض ان يقوم بطباعة الرقم 3 حيث ان أولوية معامل المضاعفة "++" أعلى من اولوية معامل الجمع "+" ولكن عند تشغيل النص البرمجي يقوم بطباعة الرقم 2 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
3 عبدالرحمن احمد16 نشر 7 يوليو 2015 أرسل تقرير مشاركة نشر 7 يوليو 2015 (معدل) سؤال جيد جداً أعتقد سيستفيد الجميع من الإجابه عليه.يقع دائماً أغلب المبتدئين في مثل هذه المشكله وكذلك المحترفين ايضاً بسبب عدم الإنتباه إلي أولوية ترتيب الكود بطريقه صحيحة ومنطقيه.إذا كنت تُريد زياده المتغير $x بواحد فعليك الإنتباه لموقعه في الكود اولاً.وزيادة لمعلوماتِك انه هناك طريقتين لأستخدام الزياده على المتغيرات من نوع INTEGER اي التي قيمتة رقمية وليست نص.وكذلك في عملية النقصان وهي عكس عمليه الزياده.دعونا نكتشف هذه الفروقات وكيف نستخدمها. سنفترض أن المتغير $x يساوي القيمة 1 ونريد ان نستخدم معه ++ للزياده عليه بـ 1 لتُصبح قيمته 2 وثم نقوم بعملية الجمع التي نُريد.لاحظ فقط الترتيب في هذا المثال:<?php $x = 1; $x++; echo 1 + $x; ?>اعتقد هذا منطقياً جداً حتى الان.انشأنا متغير $x يساوي 1 ثم في سطر جديد قمنا باستخدام ++ في نهاية المتغير $x لنزيد عليه 1 وبعد ذلك في سطر جديد قمنا بعملية الجمع 1 + $x وطباعة الناتج وهو 3 بالتأكيد.هل تعلم أخي الكريم "محمد عبدالعاطي" أن مثالك لا يوجد به الا خطأ بسيط جداً وهو انك استخدمت ++ في نهاية المتغير $x داخل عملية الجمع.اما إذا كنت استخدمت ++ قبل المتغير كان الامر سيتم بدون اي مشاكل. كيف؟!هكذا: <?php $x = 1; echo 1 + ++$x; ?>هل لاحظت الفرق البسيط؟ الفرق هو تقديم ++ قبل المتغير.ففي هذا المثال يتم اضافة الزياده علي المتغير اولاً ثم بعد ذلك يقوم بعملية الجمع وكأن الامر هكذا 1 + (1 + $x)الامر ليس صعباً او مستحيل فقط تعلم اين تضع العلامات ++ او --. هل هناك استخدام للعلامات --؟ نعم وهي لا تزيد شيءً عن استخدام ++ ولكن الفرق هنا ان -- تعمل عمل الطرح بـ 1 ايضاً لا اكثر من ذلك وإختلاف في ترتيب الكود في عملية الطرح.لنأخذ مثال على العلامات --:<?php $x = 3; echo --$x - 1; ?>هذا المثال نقول فيه أن المتغير $x يساوي 3 ويطبع عملية الطرح بتقديم المتغير الذي نريد ان نُنقص منه 1 باستخدام -- قبل المتغير ثم نطرح منه 1 ايضاً ويكون الناتج 1.إذا قمنا بعكس الترتيب سوف يكون الناتج قيمه سالبة اي -1. كيف؟!هكذا:<?php $x = 3; echo 1 - --$x; ?>هذا هو منطق عملية الطرح أن يكون الأكبر هو ما تتم عليه عملية الطرح اي لا يصح ان نقول 1 طرح 5 وأن الاستخدام الصحيح هو 5 طرح 1 ليصبح الناتج 4لمزيد من الأمثله والتفاصيل حول استخدام هذه العلامات من موقع PHP الرسمي اضغط هنا. تم التعديل في 7 يوليو 2015 بواسطة xalcrazy 2 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 MidooDj نشر 14 يوليو 2015 أرسل تقرير مشاركة نشر 14 يوليو 2015 شكرًا على الإجابة التفصيلية أخي العزيز عبدالرحمن أتمنى لك دوام التوفيق. 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
محمد عبد العاطى
لدى مشكلة في فهم أولوية المعاملات في لغة ال php ، على سبيل المثال النص البرمجي التالي
من المفترض ان يقوم بطباعة الرقم 3 حيث ان أولوية معامل المضاعفة "++" أعلى من اولوية معامل الجمع "+" ولكن عند تشغيل النص البرمجي يقوم بطباعة الرقم 2
رابط هذا التعليق
شارك على الشبكات الإجتماعية
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.