2009-04-09 31 views
2

私は最近、変数を持つサイトを作成し、さまざまな値に対してチェックし、適切な応答を返します。プログラムは多くのelse ifステートメントを使用して実行されます。変数を繰り返し確認するためのより良い方法をお探しください

私はこれを行うより良い方法があると確信していますが、何を使用するかわかりません。私はまだPHPを本当に学んでいます。

はここで、あなたに良いアイデアを与えるために、ソースコードです:

http://github.com/r3morse/isitup/blob/a7a972bcf125d1f058a44406a467438d46aa4b16/functions.php

+0

ありがとうございます、それは今のところそれがそうであるように言うつもりです。 –

答えて

5

はおそらく切り替える...場合、それは...そうでない場合に相当し、あなたが後にしているものです。

http://be.php.net/switch

+0

ありがとう、それは完璧に見えます! –

0

すべてのコードが異なる操作が必要な場合は、私はあなたがelse..if構造を偽装できると思ういけない...

あなたはスイッチを使用することができます試してみてください

switch($code){ 
case "200": 
    //then you code 
break; 
case "401": 
    //other code 
break; 
} 

など..しかし、私はあなたが何か関連するものを得るとは思わない。

他の方法では、$ code => $ message .. のようにインデックスされた配列内にコードを格納することができますが、コードごとに何かを印刷するだけです。

0

別の可能性は、適切なアクションとディスパッチのためにオブジェクトを定義することです。

<?php 
    class Dispatcher { 
     public function action_404($code) { 
      return 'foo bar ' . $code; 
     } 

     public function action_200($code) { 
      return 'far boo ' . $code; 
     } 

     public function action_301($code) { 
      return $this->action_200($code); 
     } 

     /* and so on */ 

     public function unknownAction($code) { 
      return 'don\'t know ' . $code; 
     } 

    } 

    $code  = (int)$_REQUEST['code']; 
    $methodName = 'action_' . $code; 
    $dispatcher = new Dispatcher(); 

    if (method_exists($dispatcher, $methodName)) { 
     $result = $dispatcher->$methodName($code); 
    } else { 
     $result = $dispatcher->unknownAction($code); 
    } 

    echo $result; 
?> 

...のような

は本当にタフなあなたの場合には理にかなっていません。

関連する問題