[英]PHP: Variable is int but can't perform calculation
$bal = (int)$balance;
echo is_int($bal);
$ balance來自file_get_contents($ webservice);
我正在使用(int)將字符串轉換為整數。 is_int返回1作為true作為驗證。
由於$ bal的值始終為負,因此我進行了以下計算以使其為正:
$bal = $bal * -1;
當我這樣做時,即使$ bal以前可能是-150,該值也變為0。
編輯1 var_dump($ balance)返回:字符串(110)“ -399.6000”
編輯2我已經使用XML解析器將變量分配給數組-請參閱下面的答案。
如果您要確保始終使用正數,建議使用PHP的abs()
-函數 :
$bal = abs($bal);
根據您的var_dump
輸出,您的字符串以空格開頭。 用這個:
$bal = intval(trim($balance));
問題是我正在使用file_get_contents與Web服務的GET方法進行交互。
這是返回XML頭數據,在分配給變量時我忽略了它。
為了清除XML,讓我只剩下想要的值,我使用了PHP XML_PARSER,該文件將file_get_contents存儲到數組中,並允許我將數組值分配為整數。
$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;
$bal = abs($bal);
$balance="-150";
$bal = $balance*1;
echo $bal;
給出-150
我認為您可以使用函數intval()來簡化計算,該函數返回任何變量的整數值。 如果您有php手冊,請仔細閱讀功能說明。
乘法后,程序用$ bal做什么? 以下PHP腳本在筆記本電腦上可以正常工作:
<?php
$balance = "-150";
$bal = (int)$balance;
echo is_int($bal);
$bal = $bal * -1;
echo $bal;
?>
輸出為“ 1150”,因為我沒有打擾換行。 您還能發布更多代碼嗎
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.