PHP中传递数据遇到奇怪有关问题!听说标题要长
程序员文章站
2023-12-22 21:09:34
...
PHP中传递数据遇到奇怪问题!听说标题要长!
HTML中定义的textbox如下: ↓
表单按钮提交的时候 后台接受如下: ↓
$num0 = (string)$_POST["my_test"];
$num1 = (int)$_POST["my_test"];
$num2 = intval($_POST["my_test"]);
$num3 = $num0*1;
echo $num0;
echo $num1;
echo $num2;
echo $num3;
运行后打印如下:
1 0 0 0
这是怎么回事 为什么强制类型装换1的时候 给我全都默认转为0了??????求解答
------解决方案--------------------
1111
经测试,没有发现你说的问题
------解决方案--------------------
不知道LZ的编码是不是UTF-8,如果是有可能和BOM有关吧
------解决方案--------------------
将你完整的代码发上来.这是 布阔能滴.
------解决方案--------------------
我用utf-8试了下,也都是1呀。。
------解决方案--------------------
试了,还是没发现问题。。。
------解决方案--------------------
对于你这个问题我也遇到过!感觉很奇怪,当值是1的时候,用intval()和(int)$var去转换变量类型时,会把1为换位0!这是个很奇怪的问题!或许真和编码有关系,当时的编码是utf-8,不晓得gbk会不会出现这种问题!
求解决啊!!!!!!!!!
------解决方案--------------------
if($_GET["type"]){
我看你后面的代码没有传递type嘛..并且 输出 .$num2 不是 num2...
并且 addslashes 要过滤的是字符串 你给的是数组...
if($_GET["type"]){
$num1 = (int)$_POST["my_test1"];
$num2 = (int)$_POST["my_test2"];
echo $num1."-".$num2 ;
}
?>
这段代码没有任何问题,如果这段代码在你那输出的还是 不正确的,你的php版本是?
------解决方案--------------------
HTML中定义的textbox如下: ↓
表单按钮提交的时候 后台接受如下: ↓
$num0 = (string)$_POST["my_test"];
$num1 = (int)$_POST["my_test"];
$num2 = intval($_POST["my_test"]);
$num3 = $num0*1;
echo $num0;
echo $num1;
echo $num2;
echo $num3;
运行后打印如下:
1 0 0 0
这是怎么回事 为什么强制类型装换1的时候 给我全都默认转为0了??????求解答
------解决方案--------------------
1111
经测试,没有发现你说的问题
------解决方案--------------------
不知道LZ的编码是不是UTF-8,如果是有可能和BOM有关吧
------解决方案--------------------
将你完整的代码发上来.这是 布阔能滴.
------解决方案--------------------
我用utf-8试了下,也都是1呀。。
------解决方案--------------------
试了,还是没发现问题。。。
------解决方案--------------------
对于你这个问题我也遇到过!感觉很奇怪,当值是1的时候,用intval()和(int)$var去转换变量类型时,会把1为换位0!这是个很奇怪的问题!或许真和编码有关系,当时的编码是utf-8,不晓得gbk会不会出现这种问题!
求解决啊!!!!!!!!!
------解决方案--------------------
if($_GET["type"]){
我看你后面的代码没有传递type嘛..并且 输出 .$num2 不是 num2...
并且 addslashes 要过滤的是字符串 你给的是数组...
if($_GET["type"]){
$num1 = (int)$_POST["my_test1"];
$num2 = (int)$_POST["my_test2"];
echo $num1."-".$num2 ;
}
?>
这段代码没有任何问题,如果这段代码在你那输出的还是 不正确的,你的php版本是?
------解决方案--------------------
- C/C++ code
if(!get_magic_quotes_gpc()){ addslashes($_POST); addslashes($_GET); } if($_GET["type"]){ $num1 = (int)$_GET["my_test1"]; $num2 = (int)$_GET["my_test2"]; echo $num1."-".num2 ; }
------解决方案--------------------
错的真多。
编码那里传的数组 X;
对数字进行了字符连接,结果肯定是字符。你可以在代码里写上:
$n1=3;
$n2=5;
echo $n1.'_'.$n2;
看看,结果肯定是3_5;
对于你的类型转换问题,个人猜测是HTTP的问题,以前看到过书上提到过。建议你对每个转换后的类型var_dump一下。相关文章
相关视频