gpt4 book ai didi

php - Null 作为字符串发送 "null"

转载 作者:行者123 更新时间:2023-12-01 02:13:07 24 4
gpt4 key购买 nike

我们最近移动了服务器,并注意到一些奇怪的问题。我们注意到的主要问题是,在 php 中执行空检查的任何变量都会被解释为字符串。

例如

    if($var == null){
//do something
}

已做出的两项关键更改是:1.从HTTP服务器更改为HTTPS2.从php版本5.3.14更改为5.3.13

请求是使用 jQuery.ajax post 调用发出的。

我的问题是,是否存在任何已知问题/发生这种情况的原因(例如上述更改),以及是否可以采取任何措施来解决该问题(只需进行最小的更改)。

一如既往,感谢您的回复!

编辑:示例

Js/jQuery

    var test = null;
$.ajax({
url: 'functions.php',
data: { action: 'testNullFunction', testVar:test },
type: 'post',
success:
function (output) {
alert(output)
}})

PHP:

    if (isset($_POST['action']) && !empty($_POST['action'])) {
$action = $_POST['action'];
switch ($action) {
case 'testNullFunction':
if ($_POST['testVar']==null || is_null($_POST['testVar'])){
echo "its null";
}
break;

最佳答案

当你这样做时:

$.ajax({
url: 'functions.php',
data: { action: 'testNullFunction', testVar:test },
type: 'post',
success: function (output) {
alert(output)
}
})

您将数据作为字符串发送,因此所有值也变成字符串。

当 PHP 接收到它时,它仍然是一个字符串。在这种情况下,PHP 无法确定 testVar 是否包含 null 还是 “null” - 类型信息丢失。

<小时/>

您可以通过发送以下内容来解决此问题:

data: { action: 'testNullFunction', testVar: JSON.stringify(test) }

并接收:

$testVar = json_decode($_POST['testVar'])

关于php - Null 作为字符串发送 "null",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11944051/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com