Loose typing not applied to objects
        Posted  
        
            by 
                TecBrat
            
        on Programmers
        
        See other posts from Programmers
        
            or by TecBrat
        
        
        
        Published on 2013-10-29T16:53:36Z
        Indexed on 
            2013/10/29
            22:17 UTC
        
        
        Read the original article
        Hit count: 354
        
I have very little experience working with classes and object. I work in a loosely typed language, PHP.
I was working with a SimpleXML object and ran into a problem where I was trying to do math with an element of that object like $results->ProductDetail->{'Net'.$i};
If I echoed that value, I'd get 0.53 but when I tried to do math with it, it was converted to 0
Is there a reason that a loosely typed language would not recognize that as a float and handle it as such? Why would "echo" handle it as a string but the math fail to convert it?
Example:
$xml='<?xml version="1.0" encoding="UTF-8" ?>';
$xml.='<Test>
  <Item>
    <Price>0.53</Price>
  </Item>
</Test>';
$result=simplexml_load_string($xml);
var_dump($result->Item->Price);
echo '<br>';
echo $result->Item->Price;
echo '<br>';
echo 1+$result->Item->Price;
echo '<br>';
echo 1+(float)$result->Item->Price;
Output:
object(SimpleXMLElement)#4 (1) { [0]=> string(4) "0.53" } 
0.53
1
1.53
© Programmers or respective owner