title: Why is array_walk with anonymous function providing different result than foreach?
body: <p>PHP Version 5.3.2-1ubuntu4.15</p>
  
  <p>1st, starting values:</p>
  
  <pre><code>$value_array = array('0.000','2.530',8);
  $op_value = 2;
  </code></pre>
  
  <p>Try this:</p>
  
  <pre><code>            foreach($value_array as &amp;$source_value) {
                  $source_value = $source_value + $op_value;
              }
  </code></pre>
  
  <p>And get $value_array == (2,4.53,10);</p>
  
  <p>But if you run this:</p>
  
  <pre><code>            array_walk($value_array,function(&amp;$source_value) {
                  $source_value = $source_value + $op_value;
              });
  </code></pre>
  
  <p>You get $value_array == (0,2.53,8);</p>
  
  <p>The first one gives the expected result, the second one doesn't. But it does do SOMEthing. The excess 0's ended up getting chopped off.</p>
  
  <p>Why is this? I wanted to use array_walk but now have to use foreach.</p>