سؤال

وربما هذا هو بسيط جدا ولكن لا يزال لا أستطيع الحصول على عمل أنا باستخدام هذا البيان:

echo "$num1"."+"."$num2"."=".$num1+$num2."<BR>";

وكنت أتوقع شيئا من هذا القبيل 3 + 3 = 6 ولكن بدلا من أن أحصل فقط 6

وأي أفكار لماذا؟

هل كانت مفيدة؟

المحلول

ووضع أقواس حول الإضافة. هذا أمر من الصراع العمليات.

echo "$num1"."+"."$num2"."=".($num1+$num2)."<BR>";

والسبب هو PHP قد فسرت التعبير كما لو كانت:

$a = "$num1"."+"."$num2"."=".$num1;
$b = $num2."<BR>";
echo $a + $b;

وعند إضافة سلاسل، PHP يحاول cooerce عدد للخروج منه. و$a الرقم الأول في سلسلة $num1 أو "3". وهو يفعل الشيء نفسه بالنسبة $b، والحصول على $num2 أو "3". وهكذا، $a+$b هو 6.

نصائح أخرى

echo "$num1"."+"."$num2"."=".($num1).+.($num2)."<BR>";

وكان قد عمل!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top