5 Stimmen

Warum liefert array_walk mit anonymer Funktion ein anderes Ergebnis als foreach?

PHP Version 5.3.2-1ubuntu4.15

1., Startwerte:

$value_array = array('0.000','2.530',8);
$op_value = 2;

Versuchen Sie dies:

            foreach($value_array as &$source_value) {
                $source_value = $source_value + $op_value;
            }

Und erhalte $value_array == (2,4.53,10);

Aber wenn Sie das ausführen:

            array_walk($value_array,function(&$source_value) {
                $source_value = $source_value + $op_value;
            });

Sie erhalten $value_array == (0,2.53,8);

Die erste Methode führt zu dem erwarteten Ergebnis, die zweite nicht. Aber es macht irgendetwas. Die überschüssigen 0's wurden schließlich abgeschnitten.

Warum ist das so? Ich wollte array_walk verwenden, aber jetzt müssen foreach verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X