why result is seven ?

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
pincs
Forum Newbie
Posts: 2
Joined: Sun Jun 20, 2010 10:14 pm

why result is seven ?

Post 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
?>
User avatar
McInfo
DevNet Resident
Posts: 1532
Joined: Wed Apr 01, 2009 1:31 pm

Re: why result is seven ?

Post 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"
Post Reply