2017-08-15 5 views
-2

このモデルクラスには、いくつかの関数があります。変数$ new_routeを取得する必要があります。それは、if文によって設定された後、他のすべての関数で使用できるようになります。私はそれらを関数の中ではなく、クラスの最初に含めましたが、if文はそれを削除します。私はすべての機能にこれらのコード行を含めることができ、それは私が望むように動作しますが、私はその方法がうまくいくことを知っています。私は関数getRoute()でコードをラップしましたが、どのように変数が他のすべての関数で利用できるようにクラス内の関数を自動的に実行するのですか?Php:クラス内の他のすべての関数で返される変数を必要とする

public function getRoute() { 
       $find_route = $_SERVER['QUERY_STRING']; 
      $get_route = explode('&',$find_route); 
      $set_route = explode('/',$get_route[0]); 
      $new_route = $set_route[1];  
       if ($new_route == 'memberships'){ 
        $new_route = "MEMBER"; 
       }elseif ($new_route == 'donations'){ 
        $new_route = "DONATE"; 
       }elseif ($new_route == 'tickets'){ 
        $new_route = "TICKET"; 
       }elseif ($new_route == 'items'){ 
        $new_route = "ITEM"; 
       }elseif ($new_route == 'peer'){ 
        $new_route = "PEER"; 
       }elseif ($new_route == 'recurring'){ 
        $new_route = "RECURRING"; 
       } 
      return $new_route; 
      } 
+0

これをクラスレベルの変数にしますか?関数から値を返し、戻り値を使用しますか?値がどこで使われる必要があるかを見なくては、あなたが何をすべきかは分かりません。しかし、値を渡す方法はいくつかあります。 – David

答えて

0

この機能を実行するには、別のファイルを使用する必要があります。 run.phpか、たとえばので、あなたのクラスの一番下にある機能を実行することができます。

class your_class { 
public function getRoute() { 
       $find_route = $_SERVER['QUERY_STRING']; 
      $get_route = explode('&',$find_route); 
      $set_route = explode('/',$get_route[0]); 
      $new_route = $set_route[1];  
       if ($new_route == 'memberships'){ 
        $new_route = "MEMBER"; 
       }elseif ($new_route == 'donations'){ 
        $new_route = "DONATE"; 
       }elseif ($new_route == 'tickets'){ 
        $new_route = "TICKET"; 
       }elseif ($new_route == 'items'){ 
        $new_route = "ITEM"; 
       }elseif ($new_route == 'peer'){ 
        $new_route = "PEER"; 
       }elseif ($new_route == 'recurring'){ 
        $new_route = "RECURRING"; 
       } 
      return $new_route; 
     } 
} 
$this->getRoute(); 

その後、出力が正しい出力する必要があります:)

私はあなたがクラスを持つ別のファイルを使用して助言するが必要かつ使用される

<?php 
    require_once('class.php'); 
    $class = new class(); 
    $getRoute = $class->getRoute(); 
    print_r($getRoute); // For testing the code 
?> 
関連する問題