PHP Почему EOM не может содержать функции PHP?


person TheBlackBenzKid    schedule 17.12.2012    source источник
comment
Не могли бы вы поместить вывод функции в переменную и поместить ее в heredoc?   -  person xenon    schedule 17.12.2012
comment
Что такое EOM Я искал и не могу найти документации по этому поводу   -  person TheBlackBenzKid    schedule 17.12.2012
comment
Я не могу сказать вам почему, но этот вопрос поможет вам.   -  person moonwave99    schedule 17.12.2012
comment
Я предлагаю вам изучить шаблоны.   -  person Martin Bean    schedule 17.12.2012


Ответы (2)


Как сказал @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);
person Radu Maris    schedule 17.12.2012
comment
Используя этот пример, у меня есть, например, $getHeader в качестве функции выше, код похож на function getHeader($oid){ echo 'hello'; }, поэтому электронное письмо отправляется, но оно пустое в функциональной части, на странице отображается hello нужно ли мне помещать его в глобальную переменную $ html ?? - person TheBlackBenzKid; 19.12.2012
comment
Я не полностью понял ваш вопрос, но функция getHeader должна что-то возвращать, а не печатать, что-то вроде этих строк: function getHeader ($ oid) {return 'hello'. $ Oid; } - person Radu Maris; 19.12.2012
comment
Можете ли вы показать мне пример, могу ли я просто сделать много возвратов? - person TheBlackBenzKid; 19.12.2012
comment
Вы не можете делать много возвратов. - person Radu Maris; 19.12.2012
comment
Да, поэтому я сделал переменную $ print внутри другой функции и просто сделал print =, а затем print. = И т.д., а затем return $ print пуст, но echo $ print работает ... но echo не включает его в МНВ - person TheBlackBenzKid; 19.12.2012
comment
Ссылки на это для использования в будущем: stackoverflow.com/questions/513511/ - person TheBlackBenzKid; 19.12.2012
comment
Почему я использую return, он позволяет мне отображать только один результат - если у меня есть цикл MySQL внутри него .. return позволяет использовать его только один раз ... - person TheBlackBenzKid; 19.12.2012

Вы говорите о Heredocs, и они не поддерживают интерполяцию функций, только интерполяция переменных.

person deceze♦    schedule 17.12.2012
comment
который попытается получить доступ к переменной после вызова функции? - person meze; 17.12.2012
comment
Да, исправил это утверждение. - person deceze♦; 17.12.2012