Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Json获取密钥_Php_Json - Fatal编程技术网

Php Json获取密钥

Php Json获取密钥,php,json,Php,Json,我附和了这一点,并输入了ajax $result= $this->mpesa->STKPushQuery($checkoutRequestID, 174379, "bfb279f9aa9bdbcf158e97dd71a467cd2e0c893059b10f78e6b72ada1ed2c919"); 我在json中得到的结果是: {"requestId":"","errorCode":"400.

我附和了这一点,并输入了ajax

$result= $this->mpesa->STKPushQuery($checkoutRequestID, 174379, "bfb279f9aa9bdbcf158e97dd71a467cd2e0c893059b10f78e6b72ada1ed2c919");
我在json中得到的结果是:

{"requestId":"","errorCode":"400.002.02","errorMessage":"Bad Request - Invalid CheckoutRequestID"}
现在,在我的php代码中,我需要获取errorCode的键,有时它是一个成功的代码,因此当我尝试以下操作时:

if ($result->errorCode=="400.002.02"){
    $Data = '{"status":"Submit payment before Checking for it"}';
    echo $Data;
这很好,因为错误代码是在Json中找到的。当出现成功消息时,即:

if ($result->successCode=="0"){
    $Data = '{"status":"Payment Successful"}';
    echo $Data;
}

第一条语句出现错误因为在Json中找不到错误代码 因此,我实际需要的是获取json的密钥(可以是errorCode,也可以是successCode) i、 e


使用
isset
将实现您的目标:

$mystatusCode = ( isset($result->errorCode) ? $result->errorCode : 
                    ( isset($result->successCode) ? $result->successCode : 
                        NULL
                    )
                );
或者您可以直接在if语句中使用它,而无需创建新的单个var:

if (isset($result->errorCode) && $result->errorCode == "400.002.02") {
    ...
}
elseif (isset($result->successCode) && $result->successCode == "0") {
    ...
}

您可以使用isset()来检查此密钥是否存在。首先为什么要使用
json\u encode
?这会给你一个字符串,你不能再轻易地访问其中的单个键了…!?我已经做了更改,我甚至还没有完成我的代码。再检查一下
if (isset($result->errorCode) && $result->errorCode == "400.002.02") {
    ...
}
elseif (isset($result->successCode) && $result->successCode == "0") {
    ...
}