есть такой код Код (Text): $confirm = "if (!confirm('".Module::t("Approve") . "?')) return false;"; $js_approve =<<< EOD function() { $confirm var url = $(this).attr('href'); $.post(url, function(response) { alert(response); }); return false; } EOD; хочу его переделать в такой Код (Text): $js_approve =<<< EOD function() { "if (!confirm('".Module::t("Approve") . "?')) return false;"; var url = $(this).attr('href'); $.post(url, function(response) { alert(response); }); return false; } EOD; но ф-я не вызывается, есть ли решение?
vikrorpert для heredoc-строки есть ограничение, что тег ограничения EOD; всегда должен быть в самом начале строки; пробелы и табуляция недопустимы. это требования языковой конструкции
ну я спросил про nowdoc-это вроде чтото новое а насчет пробела- все работает, вопрос вобще не в этом!
vikrorpert конкатенация строки и вызова статического метода класса внутри heredoc-конструкции не сработает. можно воспользоваться простой строкой и сделать конкатенацию со статическим методом класса тут читаем про heredoc, nowdoc и их отличия: http://www.php.net/manual/ru/language.t ... tax.nowdoc
блин зачем столько воды? у меня в примере указан работающий вариант верхний с конкатенацией уже, не проще сказать что мой рабочий вариант единственно верный и второй вариант работать не будет? и других вариантов нету
Внутри строки нельзя получить значения функции, статического метода и свойства и константы класса. Т.е. единственный вариант, это $confirm = Module::t("Approve"); ... $js_approve =<<< EOD ... if (!confirm('{$confirm}?')) return false;