Page 1 of 1
why result is seven ?
Posted: Sun Jun 20, 2010 10:18 pm
by pincs
code here:
Code: Select all
<?php
$i=1;
echo "i=".(++$i)+(++$i)+(++$i); //result 7
//but echo (++$i)+(++$i)+(++$i); result is 9
?>
Re: why result is seven ?
Posted: Mon Jun 21, 2010 12:49 am
by McInfo
Code: Select all
$i = 1; var_dump(++$i); // 2
$i = 1; var_dump((++$i) + (++$i)); // 2 + 3 = 5
$i = 1; var_dump((++$i) + (++$i) + (++$i)); // 2 + 3 + 4 = 9
// Concatenation makes the integer part of the string
$i = 1; var_dump("i=" . 2); // "i=2"
// When cast as an integer, the string becomes 0
$i = 1; var_dump((int) "i=2"); // 0
// During addition, the string is implicitly cast as an integer
$i = 1; var_dump("i=2" + 3); // 0 + 3 = 3
$i = 1; var_dump("i=2" + 3 + 4); // 0 + 3 + 4 = 7
$i = 1; var_dump("i=" . 2 + 3 + 4); // 0 + 3 + 4 = 7
$i = 1; var_dump("i=" . (++$i) + (++$i) + (++$i)); // 0 + 3 + 4 = 7
$i = 1; var_dump("i=" . ((++$i) + (++$i) + (++$i))); // "i=9"