0

私はこのphpコード行を持っています

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

issetの省略形に問題がありprint_r($data['viewData']['filter']ます。これは、elseがアクティブな場合、nothing / null/emptyを返すためです。

何が間違っている可能性がありますか?

編集して、さらに情報を追加します。

コントローラ内のコード:

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<pre>print_r();

4

1 に答える 1

2

変数は一度に3つすべてを返すことができないため、「何もない/null/空」を返すという意味がよくわかりません。isset は、データが存在するかどうかを確認しません。変数または配列のインデックスが設定されているかどうかのみを確認します。設定されていることと空でないことの両方を確認したい場合は、これを試してください:

if (!empty($parameters['filter']))
于 2012-01-21T18:48:08.460 に答える