为 foreach() php [] 提供的参数无效

Invalid argument supplied for foreach() php []

我在 UI 的一部分有这个 var property,我做

var property = JSON.stringify(valueToPush1); 它打印 []

所以我知道它是空的我仍然通过 ajax 在我的 php 中将该值发送到 php 我做

$property = ($_POST['property']); $jsonproperty = json_decode(stripslashes($property), true);

我仍然会检查 属性 是否为空所以我会

print_r($jsonproperty);

并且 ajax 响应如预期的那样是空的 []

所以我所做的是避免 Invalid argument supplied for foreach() 我检查变量是否为空如果为空我将不会继续。我做如下检查。

if (!empty($jsonproperty)) {
    foreach($jsonproperty as $value) {}
}

但我仍然得到 Invalid argument supplied for foreach() inforeach($jsonproperty as $value) {}

  1. 如何检查 php 中的变量是否为空,尤其是当 print_r[]

您调用了 JSON.stringify 两次:一次是分配给 property,一次是将 property 附加到 FormaData 参数。因为你只在 PHP 中解码一次,你得到的是字符串,而不是数组。

将它放入 formData 时只需调用 JSON.stringify 一次。