I have this code:
$tierHosts['host'] = isset($host['name']) ? $host['name'] : $host;
It's working fine in PHP 5.5, but in PHP 5.3 the condition returns true while $host
contains a string like pjba01
. It returns the first letter of $tierHosts['host']
, that is, p
.
What's so wrong with my code?
You can access strings like an array and prior PHP 5.4 offsets like your
name
were silently casted to 0, means you accessed the first character of that string:After 5.3 such offsets will throw a notice, as you can also read in the manual: