加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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(…)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读