Ich verwende einen Schalter, um den Wert einer Variablen zu testen. Die Variable $sizeTotal
kann entweder eine Zeichenfolge oder eine Zahl enthalten. Im folgenden Beispiel erwarte ich, dass der Schalter den Standardfall auslöst.
Allerdings geht es auf den ersten Fall jedes Mal, und ich weiß nicht, warum ...Switch-Fall ignoriert Bedingungen in PHP
$sizeTotal = "test";
$extraCharges['2'] = 1000;
switch ($sizeTotal) {
case ($sizeTotal < $extraCharges['2']):
$var = 40;
return $var;
case ($sizeTotal >= $extraCharges['2']):
$var = 60;
return $var;
default:
$var = 1000;
return $var;
}
Sie verwenden die switch-Anweisung falsch, es ist für die Überprüfung eines einzelnen Wertes einer Variablen gedacht, keine Bedingung. Sie möchten wahrscheinlich eine else-if-Konstruktion verwenden, die Bedingungen überprüfen kann. http://php.net/manual/en/control-structures.switch.php – Niels
Die Zeichenfolge wird in 0 konvertiert und 0 ist weniger als 1000. aus diesem Grund ist Ihre erste Bedingung wahr. –