Задать вопрос
Ответы пользователя по тегу PHP
  • Что такое жадный/нежадный в регулярках?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    Жадные отхватывают как можно больше, нежадные, соответственно, как можно меньше.
    регулярка /<p>.*<\/p>/ в тексте из нескольких абзацев выберет все от первого открывающего p до самого последнего закрывающего. Если инвертировать жадность /<p>.*<\/p>/U, то выбор будет до первого попавшегося закрывающего p

    Скобки используются, чтобы получить в результате отдельную часть выражения (или несколько). Чтобы понять, просто сделайте var_dump результатов со скобками и без.
    Ответ написан
  • Можно ли обернуть include функцией?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    Ничего не теряется.

    class Templater {
    
      public function render($file) {
        include $file;
      }
    
      public function __get($name) {
        return $this->$name;
      }
    }
    
    $tmpl = new Templater();
    $tmpl->name = 'Bob';
    $tmpl->render('template.php');


    внутри template.php:
    <? echo $this->name ?>

    Я тут опустил всяческие проверки, оставил только суть.
    Ответ написан
    3 комментария
  • Как правильно сделать вывод контента в mvc?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    самое простое:
    protected function render($view,$params = [])
        {
            ob_start();
            // внутри main.php будет доступна переменная $params
            // и переменная $this - указатель на текущий объект
            include ROOT.'/views/layouts/main.php';
            return ob_get_clean();
        }

    а внутри main.php на месте вывода контента писать

    <?= $this->getContents() ?>

    Ну это примитивный такой шаблонизатор.
    Лучше воспользоваться каким-нибудь готовым шаблонизатором. Я бы порекомендовал twig, но тут вам выбирать, как говорится, на вкус и цвет все фломастеры разные :)
    Ответ написан
    5 комментариев