在我的PHP文件中,我正在发送一封电子邮件(在HTML启动之前),该电子邮件包含变量,我已成功显示它们,如<td>' . $companyphone . '</td>
。这些变量是从不在PHP电子邮件中的HTML代码复制而来的。我只是想“如果$ address2存在,则显示$ address2”。
如何在此电子邮件的html正文中设置if
的格式?
/* from HTML (not inside of PHP's mail), what i am copying to PHP's email */
<span><? echo $address1; if ($address2) echo ' ' . $address2; ?></span>
/* PHP code to send email */
$subject = 'subject foo';
$message = '<html>
<body>
<table>
<tr>
<td>' . $address2 . '</td>
// tried below and does not work
<td>'if ($address2) echo $address2 . '</td>
</tr>
</table>
</body>
</html>'
答案 0 :(得分:3)
echo
在这里不适用。您没有输出任何东西,只是在构建一个字符串。考虑一下您已经知道如何将值连接到字符串:
'<td>' . $address2 . '</td>'
应用相同的模式,但有条件地使用三元条件运算符:
'<td>' . ($address2 ? $address2 : '') . '</td>'
只要带括号的表达式解析为字符串,就如同将任何字符串连接起来。
当然,请注意,此特定操作没有多大意义。如果$address2
是一个字符串值,那么它为空时只会是“ falsey”,对吗?因此最终结果与反正连接值相同:
'<td>' . $address2 . '</td>'
在问题开始的echo
示例中,有条件输出的是空格字符。但是在这里,您只是按原样连接字符串,无论它是否具有值。
答案 1 :(得分:-1)
使用?:三元运算符:
/* from HTML (not inside of PHP's mail), what i am copying to PHP's email */
<span><?php echo $address1;
if ($address2) echo ' ' . $address2; ?></span>
/* PHP code to send email */
<?php
$subject = 'subject foo';
$message = '
<html>
<body>
<table>
<tr>
<td>' . $address1 . '</td>
// tried below and does not work
<td>' . (($address2) ? $address2 : '') . '</td>
</tr>
</table>
</body>
</html>';
echo $message;
答案 2 :(得分:-1)
尝试一下。
/* from HTML (not inside of PHP's mail), what i am copying to PHP's email */
<span><? echo $address1;?> <?php echo $address2 ? $address2 : ''; ?></span>
/* PHP code to send email */
$subject = 'subject foo';
$message = "
<html>
<body>
<table>
<tr>
<td>$address1</td>
// tried below and does not work
<td>{$address2 ? $address2 : ''}</td>
</tr>
</table>
</body>
</html>";