PHP: Variabile è int, ma non può eseguire il calcolo
Domanda
$bal = (int)$balance;
echo is_int($bal);
$ equilibrio è da un file_get_contents ($ webservice);
sto usando (int) per convertire una stringa in numero intero. ritorna is_int 1 per vero come verifica.
Poiché il valore di $ bal è sempre negativo, faccio il seguente calcolo per renderlo una positiva:
$bal = $bal * -1;
Quando faccio questo, il valore diventa 0 anche se $ bal può essere -150 in precedenza.
Modifica 1 var_dump ($ equilibrio) è di ritorno: string (110) " -399.6000"
Modifica 2 Ho usato XML Parser alla variabile assegnare ad array -. Vedere la mia risposta seguente
Soluzione 3
Il problema è che stavo usando file_get_contents di interagire con un metodo GET per un servizio Web.
Questo stava tornando dati di intestazione XML, che ho trascurato quando si assegna a una variabile.
per cancellare il codice XML per lasciarli con solo il valore che volevo, ho usato il PHP XML_PARSER che memorizzato file_get_contents in un array e mi ha permesso di assegnare il valore di matrice per un numero intero.
$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;
Altri suggerimenti
Vi consiglio di PHP abs()
funzione se si vuole fare in modo che si sta sempre a che fare con un numero positivo:
$bal = abs($bal);
Come per l'output var_dump
, la stringa inizia con uno spazio. Utilizzare questa:
$bal = intval(trim($balance));
provare questo a se si desidera ripristinare il segno:
$bal = $bal * (-1);
abs () se si vuole che sia sempre positivi:
$bal = abs($bal);
$bal = abs($bal);
$balance="-150";
$bal = $balance*1;
echo $bal;
dà -150
Qual è il tuo programma di fare con $ bal dopo che fate l'moltiplicano? Il seguente script PHP ha funzionato come previsto sul mio portatile:
<?php
$balance = "-150";
$bal = (int)$balance;
echo is_int($bal);
$bal = $bal * -1;
echo $bal;
?>
L'uscita è "1150", perché non mi sono preoccupato con linebreaks. Puoi pubblicare più del vostro codice
Penso che è possibile effettuare i calcoli semplice utilizzando la funzione intval (), che restituisce il valore intero di qualsiasi variabile. Passare attraverso la descrizione della funzione se si dispone di un manuale di PHP.