2012-01-21 2 views
0

У меня есть этот PHP код строкиPHP Исеть сокращенная еще обратный массив не работает

$data['viewData']['filter'] = isset($parameters['filter']) ? $parameters['filter'] : array('filter1', 'filter2', 'filter3', 'filter4'); 

Что-то не так с IsSet стенографии, потому что, когда я print_r($data['viewData']['filter'] с еще будучи активным, возвращает ничего/нуль/пусто.

Что может быть неправильным?

Редактировать, чтобы добавить больше информации:

код внутри контроллера:

if (isset($parameters['filter'])) 
{ 
    $data['viewData']['filter'] = $parameters['filter']; 
} 
else 
{ 
    $data['viewData']['filter'] = array('filter1', 'filter2', 'filter3', 'filter4');    
} 
$data['viewData']['query'] = $parameters['search']; 
$data['viewData']['results'] = $searchResults; 
$data['view'] = 'searchResults'; 
$this->load->view('includes/template', $data); 

Код внутренний вид:

prePrint($viewData['apis']); 

И я ничего не получаю, когда еще входит

Codeigniter используется как основа * prePrint is просто настраиваемая функция, которая содержит <pre> и print_r();

+0

В коде нет ничего плохого. Вы уверены, что на переменную не влияет ни на что другое? – Dan

+0

совсем не так, это странно, потому что если isset is true возвращает данные, которые должны возвращаться, но если нет, ничего не возвращает – Alex

+0

Вы уверены, что это поражает условие else? Попробуйте поместить его в блок if/else и сделать некоторый отладочный вывод для подтверждения $ parameters ['filter'] действительно не установлен, если вы считаете, что это не так ... –

ответ

2

Я не совсем понимаю, что вы подразумеваете под этим, возвращает «ничего/null/empty», так как переменная не может вернуть все 3 из них одновременно. isset не проверяет, существуют ли какие-либо данные, он проверяет только, установлен ли индекс переменной или массива, поэтому, если вам нужно убедиться, что он установлен, а также содержит данные, вы должны попробовать следующее:

if (isset($parameters['filter']) && $parameters['filter']) 
+0

: D это не ничего, нулевой, пустой ... Я имел в виду, что он просто не возвращает данные. И спасибо за решение, это то, чего я отсутствовал ** убедитесь, что он установлен, а также содержит данные ** – Alex

Смежные вопросы