为什么这个php if语句不起作用?

时间:2014-01-30 18:15:17

标签: php string if-statement assign

我有一个名为$type的变量type1type2。我有另一个名为$price的变量,我希望根据$type变量的内容进行更改。出于某种原因,在发送的电子邮件中,没有任何内容。我已将$price设置为if之外的一些随机文本然后我工作,所以我知道它不是邮件功能。有谁知道为什么这个if语句不起作用?

PHP

$type = "type 2";

if( $type == "type1" ) $price = "249 kr";
if( $type == "type2" ) $price = "349 kr";


$headers = 'From: xxxxxx@gmail.com';
$subject = 'the subject!';
$message = $price; 

mail($email, $subject, $message, $headers);

由于

不过,在人们生气之前,我一直在寻找并遵循一些事情,但没有任何效果。

修改 的 正确的方法是:

$type = "type 2";

    if( $type == "type1" ) $price = "249 kr";
    else                   $price = "349 kr";


    $headers = 'From: xxxxxx@gmail.com';
    $subject = 'the subject!';
    $message = $price; 

    mail($email, $subject, $message, $headers);

谢谢Maja

3 个答案:

答案 0 :(得分:1)

如果$type只能是“type1”或“type2”,你应该这样写:

if( $type == "type1" ) $price = "249 kr";
else                   $price = "349 kr";

如果价格现在显示为“349 kr”,则$type中的值可能不正确。

您还应该考虑

 if( $type == "type1" ) $price = "249 kr"; else
 if( $type == "type1" ) $price = "349 kr";
 else                   $price = "error"; 

答案 1 :(得分:0)

鉴于您的帖子,我唯一可以想象的是$type没有"type1""type2",因此永远不会分配$price,因为IF语句不是真的。

你可以做到

if( $type === 'type1' ) {
  $price = 'something';
}
else {
  $price = 'something default';
}

所以至少它总能分配一些东西。

此外,您可以查看“$type

var_dump($type)内的内容

答案 2 :(得分:0)

你应该检查$ type isset:

$price='';
if( isset($type) ){
 if( $type == "type1" ) $price = "249 kr";
 if( $type == "type2" ) $price = "349 kr";
}