2

関数で何を返すかを判断するために if ステートメントを使用していますが、思い通りに動作していないようです。

function DoThis($dogs, $cats){
// do something with dogs, pet them perhaps.

$reg = $dogs[0];
$nate = $dogs[1];

if($cats = "dave"){return $reg;}
if($cats = "tom"){return $nate;}

}

$catsは文字列であり(それが役立つ場合)、入力しても何も返されません。手動で返品を設定すると機能しますが、上記は何らかの理由で機能しません。

4

3 に答える 3

6

等しいかどうかをテストするには、=(single equals)演算子の代わりに==(double equals)演算子を使用します。

例えば:

if("dave" == $cats){return $reg;}
if("tom"  == $cats){return $nate;}
于 2009-12-03T22:35:05.490 に答える
6

比較演算子の代わりに代入演算子を使用しています。代わりに次を試してください。

 $cats == "dave"
 $cats == "tom"

あなたが言う時

 if($cats = "dave") { ... }

あなたは本当に言っている

  1. 値「dave」を変数$catsに割り当てます
  2. 代入後に変数$catsがtrueの場合、trueを返します。それ以外の場合は、falseを返します

これはよくある間違いであり、古い手と新しい手を同じように悩ませます。

于 2009-12-03T22:35:27.500 に答える
2

比較するには==を使用する必要があります。

=は割り当てであるため、$ catsを「dave」に設定する効果があります(式は空ではない「dave」と評価されるため)ifステートメントは「if(true)」として扱われます。 。」そして含まれているコードを実行します。

于 2009-12-03T22:37:08.653 に答える