Ich denke für Ihr spezifisches Beispiel würden Sie auf den Fehler mit $arr[0]->Error
zugreifen, aber die Assoc-Optionen in json_decode bedeutet, dass es darauf ankommt, was Sie json_decode
zu tun gefragt.
Das bedeutet, wenn Sie $arr = json_decode($json, true)
getan haben, dann würden Sie auf den Fehler mit $arr[0]['Error']
zugreifen, weil der JSON dann immer Objekte in assoziative Arrays dekodiert.
Dies ist ein schönes Beispiel für Mutation und Verwirrung mit JSON und PHP, es ist möglich, dass Sie mit einem assoziativen Array in PHP beginnen, es in JSON und zurück konvertieren und das assoziative Array verlieren. Nur etwas, das man im Auge behalten sollte.
In PHP greifen Sie auf Arrays mit [
eckigen Klammern ]
und Objekteigenschaften mit ->
den Pfeil. Sie sind nicht austauschbar wie die Klammern und Punktnotationen in JavaScript. Sie müssen also immer darauf achten, ob Ihre Datenstrukturen Objekte oder assoziative Arrays sind.
Wie für die Prüfung, ob die propery vorhanden ist, verwenden Sie isset:
if(isset($arr[0]->Error)) {
// handle error
}
Nun, ich hasse mit isset wirklich überall, so habe ich eine Nutzenfunktion:
function getProperty($object, $propertyName, $defaultValue = false)
{
$returnValue = $defaultValue;
if (!empty($object)) {
if (is_array($object)) {
if (isset($object[$propertyName])) {
$returnValue = $object[$propertyName];
}
} else {
if (isset($object->$propertyName)) {
$returnValue = $object->$propertyName;
}
}
}
return $returnValue;
}
, die in Mittel meiner Code, ich mache:
if(($error = getProperty($arr[0], 'Error')) === false) {
// process $error
}
... aber das war aus immer wollen un getragen initialisierte Werte erhalten Standardwerte, wenn sie die meiste Zeit nicht vorhanden waren. (Die Funktion ist so groß, weil sie auch für Objekte und Arrays funktioniert.)
Jedes Codeprobe, das Sie bisher ausprobiert haben? –
Dies ist eine PHP-Frage, also gehen wir davon aus, dass die Daten JSON sind, aber in PHP – Aknosis
zugegriffen habe Ich habe so viele Dinge getestet, die ich gelöscht habe, werde ich zurückverfolgen. Lee sorry ja es ist JSON decodiert – Omar