正确的PHP语法和变量插值邮件()

正确的PHP语法和变量插值邮件(),php,string,variables,Php,String,Variables,我有以下代码发送电子邮件: // create email body and send it - for a domain price offer $to = 'user@domain.com'; $email_subject = "$$price offer for $domain"; $email_body = " $name is offering $$price for $domain \n\n ". " Message: $message \n\n ".

我有以下代码发送电子邮件:

// create email body and send it - for a domain price offer 
$to = 'user@domain.com';
$email_subject = "$$price offer for $domain";
$email_body =   " $name is offering $$price for $domain \n\n ".
        " Message: $message \n\n ".
        " Contact: $email_address ";

$headers = 'MIME-Version: 1.0' . "\r\n";
//$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= 'From: Domain Parking <domainforsale@domain.com>' . "\r\n";
$headers .= 'Reply-To: ' . $email_address . "\r\n";
mail($to,$email_subject,$email_body,$headers);
//创建电子邮件正文并发送-以获得域名价格优惠
$to$user@domain.com';
$email_subject=“$$price offer for$domain”;
$email\u body=“$name为$domain提供了$price\n\n”。
“消息:$Message\n\n”。
“联系人:$email_地址”;
$headers='MIME版本:1.0'。“\r\n”;
//$headers.='内容类型:文本/html;字符集=utf-8'。“\r\n”;
$headers.='发件人:域停车场'。“\r\n”;
$headers.='回复:'$电子邮件地址。“\r\n”;
邮件($to、$email\u subject、$email\u body、$headers);
注意
$email\u subject
$email\u body
变量;我使用
$$price
输出类似
$12.34
的内容

这是个好主意吗?有没有更好的方法来完成同样的事情

$foo = "bar"; 
echo "$$foo"; //prints $bar
就这样。不过,使用此语法会更具可读性:

echo '$' . $foo;

除此之外,你应该阅读这一页。除此之外,它还指定您应该使用
\r\n
来分隔标题,同时在一些地方使用
\n\n

尽管有效,但建议您改为执行以下操作之一:

$email_subject = '$' . $price . ' offer for ' . $domain;

$email_subject = sprintf('$%s price offer for %s', $price, $domain);

$email_subject = "\$$price offer for $domain";

顺便说一句,
mail()
可能会为您执行此操作,但您应该清理变量以确保它们不包含换行符。

我更喜欢使用以下格式:

// create email body and send it - for a domain price offer 
$to = 'user@domain.com';
$email_subject = sprintf("%s offer for %s", $price, $domain);
$email_body = sprintf("%s is offering %s for $domain \n\n ", $name, $price)
            . sprintf(" Message: %s \n\n ", $message)
            . sprintf(" Contact: %s ", $email_address)
            ;

$headers = 'MIME-Version: 1.0' . "\r\n";
//$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= 'From: Domain Parking <domainforsale@domain.com>' . "\r\n";
$headers .= 'Reply-To: ' . $email_address . "\r\n";
mail($to,$email_subject,$email_body,$headers);
//创建电子邮件正文并发送-以获得域名价格优惠
$to$user@domain.com';
$email\u subject=sprintf(“%s为%s提供报价,$price,$domain);
$email\u body=sprintf(“%s为$domain\n\n”提供%s,$name,$price)
. sprintf(“消息:%s\n\n”,$Message)
. sprintf(“联系人:%s,$email\u地址)
;
$headers='MIME版本:1.0'。“\r\n”;
//$headers.='内容类型:文本/html;字符集=utf-8'。“\r\n”;
$headers.='发件人:域停车场'。“\r\n”;
$headers.='回复:'$电子邮件地址。“\r\n”;
邮件($to、$email\u subject、$email\u body、$headers);

双引号字符串中的变量插值与短标记无关。问题是什么?请问一个具体的问题。例如:“如果……”这个代码会工作吗?谢谢!美元的价格怎么样?应该是\$$price,这整个代码正确吗?@Yatko我知道你现在在问什么了。可读选项是根本不将变量放入字符串中。否则,您的代码很难扫描和阅读。谢谢@Brad,我根据您和Thom Wiggers的建议更改了代码。谢谢!