0

単純なようですが、なぜこれが機能しないのかわかりません。

$message_typeが他のものと等しい場合、$detailsの詳細だけからメッセージが構築されるといういくつかのドロップダウン選択を含むフォームがあります。

$message_type がそれ以外の場合は、メッセージをつなぎ合わせる必要があります。

変数が渡され、エコーを使用してページに渡されているのが正確に「その他」であることを確認したため、スペルミスはありません。

現時点では、メッセージの種類に関係なく、常に $details だけのメッセージを作成し、「Other」と等しくない場合は「else」行をたどりません。

    if ($message_type = 'Other'){$message = $details;
}
    else {$message = "Action to do: ".$message_type." On ".$user." Extra Details: ".$details;
}

これは今私を本当に混乱させているので、どんな助けでも。

ありがとう

4

4 に答える 4

2

あなたが間違ったことはすでに他の回答で説明されていますが、「なぜ」これが起こるのですか? 簡単です:=代入演算子であり、PHP (および多くの (すべての?) 言語) の他の演算子と同様に、演算子には戻り値があります。この場合、代入の値です。PHP はこれをブール値にキャストするようになったため、true

if ($message_type = 'Other'){ /* .. */}
if ('Other'){ /* .. */}
if (true){ /* .. */}
于 2012-07-04T12:01:35.470 に答える
2
if ($message_type == 'Other')
{
    $message = $details;
}
else
{
    $message = "Action to do: ".$message_type." On ".$user." Extra Details: ".$details;
}

$message_type = 'Other'常に真です

于 2012-07-04T11:51:38.767 に答える
1
if ($message_type = 'Other'){$message = $details;
}
    else {$message = "Action to do: ".$message_type." On ".$user." Extra Details: ".$details;
}

あなたが持っているif ($message_type = 'Other') 必要がありますif ($mesage_type == 'Other')

単なる書き間違いだと思うので、違いはわかりません:)

于 2012-07-04T11:52:25.227 に答える
1

2 つの等号が必要です

if ($message_type == 'Other') {
-------------------^
    $message = $details;
} else {
     $message = "Action to do: ".$message_type." On ".$user." Extra Details: ".$details;
}

1 つの等号は代入演算子であるため、「$message_type が 'Other' と等しい場合」ではなく、「$message_type は 'Other' と等しい」と言っています。

于 2012-07-04T11:51:46.473 に答える