Frage

$bal = (int)$balance;
echo is_int($bal);

$ Gleichgewicht ist von einem file_get_contents ($ webservice);

Ich verwende (int) einen String in integer zu konvertieren. is_int kehrt 1 für wahr als Verifikation.

Da der Wert von $ bal immer negativ ist, ich die folgende Berechnung es positiv zu machen:

$bal = $bal * -1;

Wenn ich das tue, wird der Wert 0 wird, obwohl $ bal sein kann -150 zuvor.

EDIT 1 var_dump ($ balance) ist die Rückkehr: string (110) " -399.6000"

EDIT 2 Ich habe verwendet XML Parser zuweisen Variable Array - vgl. Meine Antwort unten

War es hilfreich?

Lösung 3

Das Problem ist, dass ich file_get_contents wurde mit einer GET-Methode für einen Web-Service zu interagieren.

Dies wurde Rückkehr XML-Header-Daten, die ich übersehen, wenn einer Variablen zugewiesen.

Um die XML zu ausräumen, mich zu verlassen nur mit dem Wert, den ich wollte, habe ich verwendet, um die PHP XML_PARSER die file_get_contents in einem Array gespeichert und mir erlaubt, den Array-Wert auf eine ganze Zahl zuweisen.

$result = file_get_contents($base);

$p = xml_parser_create();
xml_parse_into_struct($p, $result, $vals, $index);
xml_parser_free($p);  
$bal = $vals[0]['value'];
echo $bal *-1;

Andere Tipps

empfehle ich PHP abs()-Funktion , wenn Sie sicherstellen möchten, dass Sie immer mit einer positiven Zahl zu tun:

$bal = abs($bal);

Wie pro Ihre var_dump Ausgabe, die Zeichenfolge beginnt mit einem Leerzeichen. Verwenden Sie diese:

$bal = intval(trim($balance));

versuchen, dies zu, wenn Sie die Zeichen zurückzukehren:

$bal = $bal * (-1);

oder benutzen abs () wenn Sie es wollen immer sein positiv:

$bal = abs($bal);
$balance="-150";
$bal = $balance*1;
echo $bal;

gibt -150

Was ist Ihr Programm mit $ bal tun, nachdem Sie die mehrfach zu tun? Der folgende PHP-Skript arbeitete als auf meinem Laptop zu erwarten:

<?php
$balance = "-150";
$bal = (int)$balance;
echo is_int($bal);
$bal = $bal * -1;
echo $bal;
?>

Die Ausgabe ist „1150“, weil ich nicht mit Zeilenumbrüchen störte. Können Sie mehr von Ihrem Code schreiben

Ich glaube, Sie Ihre Berechnungen einfach mit der Funktion intval machen können (), die den ganzzahligen Wert einer Variablen zurückgibt. Gehen Sie durch die Funktionsbeschreibung, wenn Sie ein PHP-Handbuch haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top