Тернарный оператор PHP нового стиля дает нежелательный результат с функцией isset

У меня проблема с тернарным оператором PHP, поскольку в PHP версии 5.3 вы можете заменить сокращенный тернарный оператор на еще более короткую версию

// Older version
$route = isset($test) ? $test : 'test is NOT set';


// Newer version as of 5.3
$route = isset($test) ?: 'test is NOT set';

Теперь в более новой версии, если $ test не установлен. работает нормально. Однако, когда он установлен из-за метода isset () , он возвращает true или 1 вместо значения.

Должен ли я использовать более старый более длинный метод, чтобы получить $ route , равное значению $ test вместо логического значения 1 ?

5
задан JasonDavis 20 December 2011 в 02:38
поделиться