json_decode() funktioniert mit String aber nicht mit Variable

suntrop

Erfahrenes Mitglied
Ich habe ein Array als JSON String in der DB gespeichert. Ich kann es aber jetzt nicht mehr als Array umwandeln.

PHP:
$json = $item->custom;
$custom = json_decode($json, true);
$string = json_decode('{"customSize":{"length":20,"width":20}}', true);

var_dump($json); // string(69) "{"customSize":{"length":20,"width":20}}"
var_dump($custom); // NULL
var_dump($string); // korrektes array
array(1) {
  ["customSize"]=>
  array(2) {
    ["length"]=>
    int(20)
    ["width"]=>
    int(20)
  }
}

Wenn ich mir den Inhalt ausgeben lasse ($item->custom), dann ist das ein String. Wenn ich genau diesen String in json_decode() kopiere, dann bekomme ich mein Array. Aber wenn ich die Variable in json_decode() einfüge, dann bekomme ich NULL zurück.
Ich verstehe den Fehler nicht. Was ist verkehrt mit meiner Variable?

PHP 7.0.11 FreeBSD
 
Zuletzt bearbeitet:
Ok, habe es gefunden. Fast zwei Stunden Lehrgeld :)
Man soll ja nicht im Browser so prüfen :-D Problem ist schnell zu sehen, wenn man nicht nur die Ausgabe im Browser prüft:
Code:
<pre>string(69) "{&quot;customSize&quot;:{&quot;length&quot;:20,&quot;width&quot;:20}}"

Zur Verteidigung, der installierte Debugger hat gerade selber Bugs und läuft nicht :sneaky:
 
Zurück