PHP-为什么这个变量在这个foreach循环中不起作用?

PHP-为什么这个变量在这个foreach循环中不起作用?,php,foreach,Php,Foreach,美元值打印正确。数字对于$value是正确的,因此我认为该部分已被删除 如果我在($value)->price中手动输入实际数字,如(10079)->price,该函数工作正常,最后一行print\r($price)打印它应该打印的数字 由于某些原因,$value在$xml\u price=$fetch\u app->products($value)->price的上下文中不起作用因为函数为$price foreach ($_SESSION['queueList'] as $value){

美元值打印正确。数字对于$value是正确的,因此我认为该部分已被删除

如果我在
($value)->price
中手动输入实际数字,如
(10079)->price
,该函数工作正常,最后一行
print\r($price)
打印它应该打印的数字

由于某些原因,$value在
$xml\u price=$fetch\u app->products($value)->price的上下文中不起作用
因为函数为
$price

foreach ($_SESSION['queueList'] as $value){
            //this prints the correct item(s) in 'queueList'
            print_r ($value);
            //this gets the node with the price info
            $xml_price = $fetch_app->products($value)->price;
            //this converts the simpleXML node to a string
            $price = ((string) $xml_price);
            //session var accumulates the item prices in cart
            $_SESSION['totalPrice'] += $price;
            print_r ($price);

        }

那么,为什么
$value
变量不起作用,而实际数字起作用,即使我打印了
$value
并显示了正确的数字?顺便说一句,这个数字是一个浮点数,不确定这是否重要。

根据评论中的附加信息判断,以下内容应该有效:

$xml_price = $fetch_app->products((int)$value)->price;

看起来这个fetchapp API是强类型的,这对于PHP来说是不典型的,但在一定程度上技术上仍然可行。至少它处理的字符串参数不同于整数参数。

您是否尝试将$value显式转换为(int)。它可能将其视为字符串?还可以使用
var_dump()
查看实际变量类型和内容(额外的填充符,例如)。使用
var_dump()
进行调试,而不是
print\u r
。它显示有关变量的更多信息,即类型和长度,这可能是问题所在。@pburges yes我尝试了
$price=((int)$xml\u price)相同results@michiFetchApp API PHP库:这为我解决了它
foreach($\u SESSION['queueList']as$value){//这获取了价格信息为$xml\u price=$fetch\u app->products($value)->price的节点;//将simpleXML节点转换为字符串$price=((字符串)$xml\u price)*100;//会话变量累加购物车$\u会话['totalPrice']+=$price;}中的商品价格