Многие сталкивались с этой проблемой.. надеюсь мой способ поможет кому-то кроме меня выполнять функции, выражения и многое другое прямо в heredoc или строке в двойных кавычках. Иногда очень полезная штуковина :)
<?php // Функция-хак $__eval = create_function( '$c', 'return $c' ); // Проверяем.. define( 'constant_str', 'smth string' ); define( 'constant_int', 8 ); $x = 6; $y = 2; function z( $x, $y ) { return $x * $y; } // Примеры использования // Синтаксис: {$__eval( [expressions|variables|constants|functions|object->methods|etc] )} echo "1st: {$__eval(4+5)} text\r"; // выводит '1st: 9 text' echo "2nd: {$__eval(constant_str)} and text\r"; // выводит '2nd: smth string and text' echo <<<HEREDOC 3rd: {$__eval( z($x, $y) + constant_int / 2)} and text again HEREDOC; // выводит '3rd: 20 and text again'
Комментариев нет:
Отправить комментарий