这是我的代码:
<?php
//for reference
$intqty = (int) $_POST["qty_input"];
(int)$_SESSION['cart_qty'] += $intqty;
?>
$_POST['qty']
是一个字符串,我试图在会话变量中添加和存储值,但它不起作用。 I echo $_SESSION['cart_qty'];
为0时的输出;
答案 0 :(得分:3)
如果$_POST["qty_input"]
无效,则转为int
将返回0
。
$_SESSION['cart_qty'] = (int)$_SESSION['cart_qty'] + $intqty;
答案 1 :(得分:1)
如果您的变量都是有效数字,那么如果您将它们用作数字,则会隐式转换,例如,如果您尝试添加它们:
$_SESSION['cart_qty'] += $_POST['qty_input'];
不多也不少。
如果这条线不起作用,那就太奇怪了。这可能意味着其中一个或两个值都不是有效数字,但我假设您已经检查了变量的内容。
答案 2 :(得分:0)
您需要使用类似$_POST
的内容明确显示存储在$_SESSION
和var_dump
中的值,以确保该值确实是可以转换为int的字符串( ie&#34; 23&#34;),但即便如此,你也不需要将字符串转换为int。 PHP支持type juggling,它基本上在对它们执行操作时隐式地将变量转换为正确的类型。
这应解释如何将字符串转换为int,以及如何同时添加两个整数,只需使用+
或+=
,具体取决于您希望存储值的位置。< / p>