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

时间:2013-03-15 22:59:59

标签: php foreach

$ value正确打印。这个数字对于$ value是正确的,所以我认为这部分被淘汰了。

如果我在($value)->price中手动输入实际数字,如(10079)->price,则该功能正常,最后一行print_r ($price)会打印出它应该的数字。

由于某种原因,$ $xml_price = $fetch_app->products($value)->price;的上下文中的$ value无效,因为$price函数返回nil

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并显示正确的数字?顺便说一句,这个号码是浮动的,不确定是否重要。

1 个答案:

答案 0 :(得分:2)

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

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

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