2016-08-03 2 views
0

Я передаю данные массива на мой взгляд, как этотCodeigniter: Используя переключатель с петлей Еогеасп

public function login(){ 
     $array= array(
      array(
       'type'   =>  'text', 
       'usrname'  =>  'username', 
       'class'   =>  'form-control', 
       'placeholder' =>  'Username', 
      ), 
      array(
       'type'   =>  'password', 
       'class'   =>  'form-control', 
       'placeholder' =>  'Password', 
      ), 
      array(
       'type'   =>'heading', 
       'heading'  =>'Not a Memer YET ?', 
      ), 

     ); 

    $output['data']=$array; 
    $this->load->view('authentication',$output); 

на мой взгляд, это то, что я делаю

<?php foreach ($data as $key=> $value):?> 
     <?php 
      switch ($value){ 
       case $value['type']=='heading': 
        echo $value['heading']; 
        break; 
       case $value['type']=='text': 
        echo 'textfield'; 
        break; 
      } 

     ?> 
    <?php endforeach;?> 

это правильно, но я работаю просто хочу спросить, является ли это стандартной практикой, как я это делаю, или может быть лучший способ пересечь этот массив в коммутаторе.

Нужна ваша помощь, пожалуйста

Этот вопрос не о том, если я должен использовать переключатель или другое, я хочу знать, как я использовал переключатель с точки зрения кодирования это правильно или нет? Или я могу Улучши это .

+0

использовать 'if' в качестве альтернативы –

+0

Возможно, вы захотите ознакомиться с PHP MVC Architecture. Также ваше текущее решение рано или поздно станет довольно грязным с большим количеством элементов и больше данных в целом. –

+0

Возможный дубликат [Который является более быстрым и лучшим, Switch Case или если else if?] (Http://stackoverflow.com/questions/10773047/which-is-faster-and-better-switch-case-or-if- else-if) –

ответ

1

Вместо сравнения в корпусе коммутатора вы можете изменить код переключения примерно так.

<?php foreach ($data as $key=> $value):?> 
<?php 
    switch ($value['type']){ 
     case 'heading': 
         echo "heading"; 
         break; 
     case 'text': 
         echo 'textfield'; 
         break; 
     default : //default code here 
    } 

?> 
<?php endforeach;?> 
+0

Спасибо большое мужчине .....! – Sikander

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