Возможно ли вывести переменную вверху страницы?

Возможно ли вывести перемнную на php вверху страницы, при том, что создана она будет внизу?

Проще говоря, возможно ли заставить работать такой php код?

----------------index.php-------------

echo $a;

$a="20";

-----------------end page--------------

Обычно echo переменной ставится после создания переменной, но возможно ли echo поставить на вверх, чтоб всё работало и вывелось число 20?


Ответы (1 шт):

Автор решения: Daniil Loban

Разумеется я не советую писать код плохо, это просто пример как можно реализовать подобную задачу в случае если нет нормальных решений без костылей. Само по себе использование переменной до объявления не является нормой ни для какого языка.

    // создаем плейсхолдер для $a чем уникальнее тем лучше
    $a = ":placeholder_a"; 

    ob_start(); // начинаем захват буфера
    
    // какой-то код php ...   
    echo "before\n";
    echo "$a\n";
    echo "after\n";
    
    // где-то ниже задаем значение (для плейсхолдера)
    $a = 10; 
    
    // финальный вывод 
    $out = ob_get_clean(); // получаем буфер
    echo str_replace(":placeholder_a", $a, $out);  // подстановка и вывод

Для чего это можно использовать, ну например нам нужно вывести какой-то текст и где-то в середине вставить его длину которую мы на момент вывода не знаем

вывод:

before
10
after
→ Ссылка