我有这个PHP代码:
$qty_old = $product->getProductData (null, $product_id, null, null, 'quantity', null, '1');
$qty_old = $qty_old[0]['quantity'];
$qty_new = $qty_old - $quantity;
$product->update('product_tangible', array ('quantity' => $qty_new), 'id = "'.$product_id.'"');
并产生这样的错误:
Warning: Cannot use a scalar value as an array...
我相信主要问题出在这一行:
$qty_new = $qty_old - $quantity;
它生成整数,而我在这里阅读:http://php.net/manual/en/function.is-scalar.php,它说
标量变量是那些包含整数、浮点数、字符串或 布尔。类型数组、对象和资源不是标量。
我试图这样做:
$qty_new = $qty_old - $quantity;
$qty_new = (array)$qty_new;
但仍然无法摆脱该错误。 如何将该整数用于数组值? 谢谢
行没有意义:
$qty_old = $qty_old[0]['quantity'];
$qty_new = $qty_old - $quantity;
第一行:你给数组提供了可能不是数组的值。
第二行:您正在从数组中减去$quantity(可能是数字),这不是地球上允许的操作:)
我建议你改变这两行,让他们做你最初想让他们做的事情。如果您对如何做到这一点有疑问,请向我解释您希望他们做什么,我会在我的回答中包括该过程:)
错误是指$qty_old = $qty_old[0]['quantity'];
行。它告诉你的是$qty_old
不是一个数组。
我建议在通话后立即打印出$qty_old
,$product->getProductData()
看看它能给你带来什么。这将帮助您了解如何使用数据。
看起来 #1 行上的函数调用返回的是单个值,而不是产品数组。
然后你尝试获取第一个元素,就好像它是一个数组一样,因此你的错误。