2017-11-03 11 views
-1

私のコードでは、switch文の中にいくつかのデータを代入する変数があります。しかし、その変数は、switch文の外で呼び出したときにはデータを出力しません。サンプルコードはこちらPHPのswitch文から変数データを取得する

switch (some condition){ 
    case 1: 
    $userid = $receiver->getMessage(); 
    break; 
    case 2: 
    break; 
} 

echo $userid; 

どのようにこの問題を解決しますか。

+0

おそらくケース2に入ると、スイッチのステートメントの前に状態をエコーし​​ようとしましたか? – Lucarnosky

+0

'if(isset($ userid))echo $ userid;' < - これは? – Andreas

+0

このコードは絶対に動作し、 '$ receiver-> getMessage()'の結果をエコーし​​ます。あなたはメソッドが何かを返すと確信していますか? – Jeff

答えて

0

switch文を呼び出す前に、変数を宣言することができます。

$userid = ""; 
switch (some condition){ 
    case 1: 
    $userid = $receiver->getMessage(); 
    break; 
    case 2: 
    break; 
} 

echo $userid; 
0

内に宣言された変数switchのステートメントはもちろん外で見ることができます。 switchswitch

  • echo isset($userid) ? $userid : 'default value';

    1. $userid = 'default value';

      問題は、スイッチ内で宣言されていない場合、あなたはそれの2つの方法で回避することができます。

    デフォルト値は何もない場合は、空の文字列を使用するものは何でも、することができます。

  • -1

    あなたはケース2 またはデフォルトで何もしていません。このように構造化すると、うまくいくはずです。

    異なる時点で、userIdが実際に設定されているかどうかを検証できます。

    +0

    'default'を使うと、コードの最初の行を削除できます。 – panther

    +0

    本当に、私は例から削除することができます。 –

    関連する問題