1

関数の一部として変数を設定するのに問題があります。何よりも構文がダウンしていると確信しています。私がしようとしているのは、if/else ステートメントをその一部として使用して、変数 $Bname を返すことです。

しかし、それを設定する方法がわかりません。

私の機能は次のとおりです

 function bestPriceFunc($var1, $var2) {
      if ($var1 < $var2) {
          return $var1;
          $Bname = 'will';
          return $Bname;

      } else {
          return $var2;
          $Bname = 'Lad';
          return $Bname;
      }
  }

これはそれを行う正しい方法ですか、それとも単に書くことができますかreturn $Bname = 'Lad';. 両方を試しましたが、ページをロードすると未定義の変数エラーが発生します

4

3 に答える 3

4

関数が最初に実行されたときに関数が終了するため、関数ごとに 1 回だけ return を使用できます。

以下を試すか、$var1 と $var2 を返す必要がない場合は、単にそれらの行を削除してください。

<?php
function bestPriceFunc($var1, $var2) {
    if ($var1 < $var2) {
        $Bname = 'will';
        return array($var1, $Bname);

    } else {
        $Bname = 'Lad';
        return array($var2, $Bname);
    }
}

$var = bestPriceFunc(3, 4);
$bnameoutput = $var[1];
?>
于 2013-02-05T15:13:07.940 に答える
0

関数を返す$var;と実行が終了します。つまり、残りのコードは無視されるため、$Bname設定されません。

また、各関数には2つの「リターン」があります。関数がどのように機能するかを確認することをお勧めします。

于 2013-02-05T15:14:46.037 に答える
0

$Bname変数を使用しようとすると、既に と が返されているため、未定義のエラーが発生し$var1ます$var2

return ステートメントは関数を終了します。return $var1;またはヒットreturn $var2すると、関数が終了し、指定された変数が返されます。変数を返す$Bnameには、他の戻り値を取り除く必要があります。

于 2013-02-05T15:13:19.657 に答える