簡體   English   中英

PHP:變量為int但無法執行計算

[英]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 = $bal * (-1);

或使用abs()如果希望它始終為正:

$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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM