Можно ли изменить стандартные команды в PHP? Я хотел бы использовать {{ «Например, вместо» эхо ».
В моей практике я использую эхо « ‘ а также ‘ «; очень часто, чтобы напечатать всю строку. Например:
echo "<div class='someClass'>
<table id='someTable'>
<tr>
<td> Hello </td>
<td> World </td>
</tr>
</table>
</div>
";
На мой взгляд, это намного удобнее, и код выглядит более читабельным, чем когда-либо эхо ‘для каждой новой строки. Но возможно ли сделать его более привлекательным, как, например, в Laravel Framework.
{{
<div class='someClass'>
<table id='someTable'>
<tr>
<td> Hello </td>
<td> World </td>
</tr>
</table>
</div>
}}
Я пытался difine константа:
define ('{{', 'echo "');
define ('}}', '";');
Но это не сработало. А также замена всего кода с помощью str_replace в одну переменную с необходимыми символами, а затем распечатать его.
$a = str_replace('{{', 'echo "', $someVariableWithAllCodeAsText);
$a = str_replace('}}', '";', $someVariableWithAllCodeAsText);
Итак, вопрос: возможно ли это вообще?
Вы можете определить функцию:
function _($html)
{
echo $html;
}
Тогда просто используйте в своем коде:
_('<h1>Hello World !</h1>');
Вы также можете использовать:
<?= '<h1>Hello Worlds !' <?>
Для более короткого пути.
Но в целом вы не сможете этого сделать, вы можете увидеть все движки шаблонов, такие как Smarty или Twig, они разбирают код шаблона для замены {{
от echo
Есть несколько законных способов сделать определенный текст «красивее», но не совсем так, как вы собираетесь.
Во-первых, вы можете определить блоки HTML в файле HTML и просто использовать include
или же require
оператор для вставки блока. Тем не менее, это не хорошо для динамического контента.
Во-вторых, вы можете использовать heredoc
синтаксис для определения строк. Это позволит использовать переменные.
В-третьих, вам не нужно включать весь контент, который вы выводите в PHP, даже если он динамический. Проверять, выписываться выход из HTML на сайте документации PHP. Вот пример оттуда:
<?php if ($expression == true): ?>
This will show if the expression is true.
<?php else: ?>
Otherwise this will show.
<?php endif; ?>