Глобальная переменная
будет работать, потому что require
не является перенаправлением, но, поскольку вы находитесь в области действия функции, вам нужно будет перечислить эти глобальные переменные для общего доступа к ним, но я не уверен, хорошая ли это идея
// index.php
$var = 'global';
...
$app -> get("/home", function ($req)
{
global $var;
require 'views/home.php';
});
...
// home.php
var_dump($var);
var_dump($req);
лучше использовать ООП и передавать данные через параметры
edit: если вы спрашиваете, как передавать переменную между файлами, то вышеприведенное хорошоДело в том, что когда вы смотрите на файл кода представления, через некоторое время вы не будете знать, откуда переменная приходит, и это заставляет вас читать больше исходных файлов (IDE не скажет вам, где определена переменная).
рассмотрим это:
$app -> get("/home", function ($req)
{
global $var;
require 'views/home.php';
$view = new Home($var);
});
class Home {
private $var;
public function __construct($var){
$this->var = $var;
}
public function render(){
echo $this->var;
}
}
с этой точки зрения вы сразу видите, что существует переменная var и что она исходит из конструктора, без путаницы, единственный способ передачи переменной - это создание объекта, котороегораздо проще найти и IDE скажет вам где