PHP 无法使用 json_decode 访问对象的属性值

埃尔文·桑德斯

所以我有 2 个 php 文件,我们称之为 UploadImages.php 和 Caller.php

所以在 UploadImages.php 我有一个像这样的功能

<?php
 function UploadImages(){
   $result = [
     "UploadOk" => 0,
     "UploadMsg" => "Upload successful" ];

   echo(json_encode($result));
 }
?>

这就是我在 Caller.php 中处理它的方式

<?php
  include "UploadImages.php";

  $uploadResult = json_decode(UploadImages(), true);

  if($uploadResult["UploadOk"] == 1) {
     // do something else
  }
  else {
     echo $uploadResult["UploadMsg"];
  }
?>

使用javascript中的ajax,我得到了这个结果:

"{"UploadOk":1,"UploadMsg":"Upload successful"}"

我期望的只是 UploadMsg 属性而不是它返回一个对象,请注意,我实际上需要在 Caller.php 中处理 UploadOk 而不是将整个对象转储到 javascript,因此 javascript 中的 JSON.parse 方法将不正确处理这种情况的方法。

法尔汉塔希尔 |

echoinsideUploadImages返回对象,当 PHPecho发送响应标头时,因此通过 ajax 调用您可以从该方法获得响应。

使用以下方法更改方法,然后尝试:

function UploadImages(){
   $result = [
     "UploadOk" => 0,
     "UploadMsg" => "Upload successful" ];
    return json_encode($result);
 }

注意:您也不需要使用json_encodeinsideUploadImages只需返回数组如下:

function UploadImages(){
   $result = [
     "UploadOk" => 0,
     "UploadMsg" => "Upload successful" ];
    return $result;
 }

并在 Caller.php

<?php
  include "UploadImages.php";

  $uploadResult = UploadImages();

  if($uploadResult["UploadOk"] == 1) {
     // do something else
  }
  else {
     echo $uploadResult["UploadMsg"];
  }
?>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章