我有public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
函数,它将" 0,11 \ u20ac " 作为返回值。
" 0,11 " 不是静态的。 我想用下面的字符串中的 " 0,11" 做一些数学运算。
下面显示的我的代码不符合我的要求。有人知道如何完成这项任务吗?我是非常新的PHP。
get_price_data();
答案 0 :(得分:1)
<?php
function get_price_data() {
$json = file_get_contents("http://steamcommunity.com/market/priceoverview/?currency=3&appid=730&market_hash_name=Chroma%202%20Case");
$decode = json_decode($json,1);
return $decode['median_price']; // return here instead of echo.
}
这个return
是必要的,因为这是一个函数。 PHP函数中没有特别要求return
语句(如果没有显式返回值,函数将默认返回null
。)您需要返回的原因是您使用的是返回值在这个声明中:
$string=get_price_data();
使用echo
代替return
,$string
将在此处设置为null
,对其进行的任何后续操作显然都不会达到您的预期效果。
如果您将功能更改为return
$decode['median_price']
的值,则$string=get_price_data();
会将0,11€
分配给$string
,然后您的替换和计算应该按预期工作。
$string=str_replace(array('€','\u20ac'),'',$string);
$string = str_replace(",",".",$string); // replace , with . as noted by mertizci
echo $string * 1000 - 120;
?>
答案 1 :(得分:0)
由于价格变化值中的逗号,PHP无法对其进行数学处理。你也应该用点更改逗号。
您的代码应该(编辑):
<?php
$string=get_price_data();
$string=str_replace(array('€','\u20ac'),'',$string);
$string = str_replace(",",".",$string);
echo $string * 1000 - 120;
?>