Gleich und doch nicht gleich

miheberle

Grünschnabel
Hallo,

ich habe auf einmal ein ganz eigenartiges Problem:

In einer Funktion vergleiche ich zwei Werte wie folgt:

PHP:
echo "Summe Soll: $summeSoll\n";
echo "Summe Haben: $summeHaben\n";
	
if ($summeSoll != $summeHaben)
{
	return -1;			// Beträge Soll/Haben stimmen nicht überein
}

Eigentlich nichts Weltbewegendes - dachte ich. Denn obwohl die Variableninhalte gleich sind, wird -1 zurückgegeben. An was kann das liegen?

Vielen Dank!

Michael
 
Gumbo hat gesagt.:
Was sagt denn die Identitätsprüfung:
PHP:
var_dump( $summeSoll === $summeHaben );

Er prüft doch mit != und nicht !==, also ist der Variablentyp doch schnuppe, oder seh ich das falsch?
 
var_dump gibt als Ergebnis "bool(false)" zurück.

Die Variablen wurden folgendemaßen deklariert bzw. befüllt:

PHP:
$summeSoll = 0;
foreach ($soll as $konto => & $betrag)
{
	$betrag = str_replace(',', '.', $betrag);
	$betrag = number_format($betrag, 2, '.', '');
	$summeSoll += $betrag;
}
	
$summeHaben = 0;
foreach ($haben as $konto => & $betrag)
{
	$betrag = str_replace(',', '.', $betrag);
	$betrag = number_format($betrag, 2, '.', '');
	$summeHaben += $betrag;
}

Ich habe auch schon den Typ überprüft, obwohl dies bei != eigentlich keine Rolle spielen dürfte: beidesmal double.
 
$soll:
Array
(
[Forderungen] => 59.99
)

$haben:
Array
(
[USt] => 8.27
[WVK_Kost] => 0.00
[WVK] => 51.72
)

$summeSoll und $summeHaben sind also beide 59.99, was durch die echos vor der if-Abfrage bestätigt wird.
 
Zurück