Me parece que estás agrupando mal las sub-condiciones lógicas, pienso que debería ser así.
Código PHP:
$foo = empty($bar) ? 'Bar is empty' : ( empty($candy) ? 'Candy is empty' : "Well, the values are: '$bar' and '$candy'" );
Una cosa al respecto es bastante importante, la implementación de dichas condicionales en PHP deja mucho a desear ya que no es perfecta y debes usar paréntesis para agrupar correctamente tus condiciones.
Eso no sucede en otros lenguajes, pero es de advertir y notar, al menos, en PHP.