PHP会自动将数字转换为字符串吗?
发布时间:2020-12-13 21:43:58 所属栏目:PHP教程 来源:网络整理
导读:我使用dojo和ajax向 PHP发送时间戳,它执行数据库检查,然后返回时间戳以进行调试.当我发送这个时间戳时,它是一个数字,当它返回时,它是一个字符串.这有什么特别的原因吗?我该怎么做才能避免这种情况(在PHP中转换为int,通过JSON修复,或者在javascript中转换为i
我使用dojo和ajax向
PHP发送时间戳,它执行数据库检查,然后返回时间戳以进行调试.当我发送这个时间戳时,它是一个数字,当它返回时,它是一个字符串.这有什么特别的原因吗?我该怎么做才能避免这种情况(在PHP中转换为int,通过JSON修复,或者在javascript中转换为int)
这是Dojo代码 dojo.xhrGet({ url: 'database/validateEmail.php',handleAs: "json",content: { email : 'George.Hearst@Pinkerton.dw',time: 0 },load: function(args) {/*SEE BELOW*/} }); 这是PHP脚本 <?php /** ** connect to the MySQL database and store the return value in $con * */ $con = mysql_pconnect("localhost:port","username","password"); /** ** handle exceptions if we could not connect to the database * */ if (!$con) { die('Could not connect: ' . mysql_error()); } /** ** Create table query * */ mysql_select_db("portal",$con); /** ** Get user entered e-mail * */ $emailQuerry = mysql_num_rows(mysql_query("SELECT EMAIL FROM user WHERE EMAIL='" . $_GET["email"] . "'")) == 1; /** ** Whether successful or not,we will be returning the time stampe (this is used to determine whether there were any changes between the time a request ** was sent,and when this response was returned. * */ $result['time'] = $_GET["time"]; /** ** Currently only checks to see if the two values were provided. Later,will have to check against passwords * */ if ($emailQuerry) { $result['valid'] = true; } else { $result['valid'] = false; } echo json_encode($result); ?> 最后,加载功能在上面留空了 load: function(args) { console.log(localArgs.time + ' v ' + args.time); console.log(localArgs.time === args.time); console.log(localArgs.time == args.time); } 其输出是 0 v 0 false true 解决方法
json_encode将所有变量编码为字符串.
所以javascript会把它看作一个字符串. 所以在javascript中你可以使用parseInt(…) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |