Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么,当我';如果将两个整数相加,PHP是否返回错误的结果(6+;7=1)?_Php_Math - Fatal编程技术网

为什么,当我';如果将两个整数相加,PHP是否返回错误的结果(6+;7=1)?

为什么,当我';如果将两个整数相加,PHP是否返回错误的结果(6+;7=1)?,php,math,Php,Math,我有两个变量: $qty = 7; $_POST['qty'] = 6; var_dump($qty, $_POST['qty']); // both vars are integers $_SESSION['qty'] = $qty + $_POST['qty']; echo '='.$_SESSION['qty']; 这将返回: int(7) int(6) =1 (int)$qty,(int)$\u POST['qty']无法解决问题 我做错了什么 更新: ... intval($q

我有两个变量:

$qty = 7;
$_POST['qty'] = 6;

var_dump($qty, $_POST['qty']); // both vars are integers
$_SESSION['qty'] = $qty + $_POST['qty'];
echo '='.$_SESSION['qty'];
这将返回:

int(7) int(6) =1 
(int)$qty,(int)$\u POST['qty']
无法解决问题

我做错了什么

更新:

... intval($qty) + intval($_POST['qty']);
没有帮助

我注意到还有一个细节。仅当$\u会话['qty']>=10时出现问题:

$_SESSION['qty'] = $qty + $_POST['qty']; // $qty = 3, $_POST['qty'] = 6
返回良好结果($\会话['qty']=9)

已解决
谢谢大家的不回答。但问题更多的不是实际的(这是一个服务器问题)。总之,对所有人来说都是+1。

真奇怪,我从来没有遇到过这种问题。如果在算术运算中显式使用整数值?(与强制转换为整数不同)


您是否尝试过只使用自己的变量,而不使用操作中的POST值?

您使用
(int)
所做的是转换变量,而不是转换变量。您应该改用
intval($var)


看。

这给了你什么

$localQty = 7;
$_POST['qty'] = 6;

$_SESSION['qty'] = ($localQty + $_POST['qty']);
var_dump($_SESSION['qty']);

在脚本开头使用Session\u start()正确初始化会话吗?

您的$\u会话隐式初始化为字符串

$_SESSION = 'blah';

$_SESSION['qty'] = 13;
var_dump($_SESSION['qty']); // gives "1"

我会打印($_SESSION)以查看它是什么。

会话设置是否正确?能否显示所有三个变量的var_dump结果?如果交换它们会发生什么?如果你把它放到另一个变量中(比如$temp=$qty+$_POST['qty'];),就会发生这种情况。丹尼尔,这会是什么问题呢?(因为使用了另一个变量,所以它可以正常工作)。Pekka,字符串(1)“7”字符串(1)“6”字符串(1)“1”无论如何,这不会给我任何结果。
(int)$x
不会更改x的值。intval()没有帮助。。。而且,问题不在$u POST中,尝试使用测试常量而没有结果。似乎就是这样。确保脚本开头有session_start(),并且没有将$_session变量(而不是它的一个索引值)赋给某个字符串。很好。有时候,答案需要大量的想象力。
$_SESSION = 'blah';

$_SESSION['qty'] = 13;
var_dump($_SESSION['qty']); // gives "1"