0

重複の可能性:
HEREDOC文字列内でPHP関数を呼び出す

Swiftmailer PHPを使用して、注文完了ページを作成しています。顧客がこのページにアクセスしたとき、私はPHPファイルへのインクルードを使用します。

このページファイルには、顧客に送信されるSwiftMailerEOMHTMLが含まれています。ただし、HTMLパーツがチャンクになっているため、ヘッダーはヘッダーと呼ばれる関数を介しており、注文の合計も同じです。EOM内にEOM関数を含めることができるようにしたい。これは可能ですか?

Id  =       46088;

// MAIL FUNCTION
function mailToSend($Id){

// EOM CAN'T BE TABBED
$html = <<<EOM
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
getHeader($Id);
getOrderTotalBoxTable($Id);
</body>
</html>
EOM;


}

mailToSend(46088);
4

2 に答える 2

1

@decezeが言ったように、できませんが、これは機能します(@xenonコメントを例に拡張します):

function getHeader($Id = '')
{
    $text = '';
    $text.=' Your first line of text, store it in an variable <br>';
    $text.= 'Hello '.$Id.'<br>';
    $text.='Your last text to be returned<br>';
    return $text;
}

// MAIL FUNCTION
function mailToSend($Id){

    $getHeader = getHeader($Id);
    $getOrderTotalBoxTable = getOrderTotalBoxTable($Id);

    // EOM CAN'T BE TABBED
$html = <<<EOM
    <!DOCTYPE html>
    <html lang="en">
    <head>
    </head>
    <body>
    $getHeader;
    $getOrderTotalBoxTable;
    </body>
    </html>
EOM;

}

mailToSend(46088);
于 2012-12-17T16:00:40.727 に答える
1

あなたが話しているのはヒアドキュメントであり、それらは関数補間をサポートしておらず、変数補間のみをサポートしています。

于 2012-12-17T15:46:17.160 に答える