Ich habe diesen Code:Warum verhalten sich Strings in PHP 5.3 wie ein Array?
$tierHosts['host'] = isset($host['name']) ? $host['name'] : $host;
Es funktioniert gut in PHP 5.5, aber in PHP 5.3 die Bedingung gibt true zurück, während $host
eine Zeichenfolge wie pjba01
enthält. Es gibt den ersten Buchstaben $tierHosts['host']
, also p
zurück.
Was ist falsch an meinem Code?
Sie können dieses Verhalten umgehen mit '(is_array ($ host) && isset ($ host [" name "]))'. Überprüfen Sie immer den Typ, den Sie benötigen, wenn nicht klar ist, welchen Typ Sie erhalten. Weitere Informationen zu dem von Ihnen beschriebenen Verhalten finden Sie in der Antwort von Rizier123. – TobiasJ
Wenn Sie an anderen Dingen interessiert sind, die Sie in PHP unvorbereitet treffen können, lesen Sie dies. http://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/ – Almo
Warum verhalten sich Strings wie ein Array ...? Weil sie ein Array sind ... – SnakeDoc