如何使变量选择指定的链接

时间:2015-04-16 08:26:46

标签: php variables

我正在为PayPal开发PHP IPN脚本。将商品添加到购物车时,会获得item_name。每个item_name都有一个与之相对应的链接。

示例:

<?php
  $digital_product_path=
  ["Item1book", "http://somewebsite.com/item1.pdf"],
  ["Item2song", "http://somewebsite.com/item2.mp3"],
  ["Item3zip", "http://somewebsite.com/item3.zip"]
?>

目标是使用item_name变量向买方发送包含与$digital_product_path对应的链接的电子邮件。

电子邮件片段看起来像这样:

if(strtoupper($payment_status) == 'COMPLETED')
{
    $mail -> Subject  =  'Download File Here';
    $mail -> Body = $digital_product_path;
    $mail -> AddAddress($payer_email, $first_name);
    $mail -> Send();
    $mail -> ClearAddresses();
}

我尝试过这样的事情,但它没有达到预期的效果(它只是通过电子邮件发送与最后一个$ digital_product_path相对应的URL):

if($item_name = 'Item1book')  
{
  $digital_product_path = 'http://somewebsite.com/item1.pdf';
}
if($item_name = 'Item2song')  
{
  $digital_product_path = 'http://somewebsite.com/item2.mp3';
}

如何才能使这项工作?

3 个答案:

答案 0 :(得分:2)

if($item_name = 'Item2song')  

=是一个赋值运算符。您必须使用==(相等)或===(相同),因此:

if($item_name == 'Item2song')

答案 1 :(得分:1)

Alex M是对的。或者你使用switch,这是你的问题的最好选择:

switch($item_name)
{
    case 'Item1book':
        $digital_product_path = 'http://somewebsite.com/item1.pdf';
    break;
    case 'Item2song':
        $digital_product_path = 'http://somewebsite.com/item2.mp3';
    break;
    default: 
        //unknown item-string
    break;
}

答案 2 :(得分:0)

感谢您的帮助和见解!

虽然总有无限的可能性,但我找到的工作解决方案是:

if($item_name == 'item1book')
{
$digital_product_path = 'http://somewebsite.com/item1.pdf';
}
if ($item_name == 'item2song')
{
$digital_product_path = 'http://somewebsite.com/item2.mp3';
}