ich die folgende Funktion haben:PHP undefinierte Variable innerhalb umfassen
function get_include_contents($filename, $params = array()) {
if (is_file($filename)) {
ob_start();
extract($params);
include $filename;
$contents = ob_get_contents();
ob_end_clean();
print_r(get_defined_vars());
return $contents;
}
return false;
}
In $filename
i Pfad zu layout.php
übergeben bekommen, die wie folgt aussieht:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title><?= $title; ?></title>
</head>
<body>
<div id="todos"></div>
<input id="todo" type="text" />
<input type="button" id="addTodo" value="Add Todo" />
</body>
</html>
wie Sie sehen können Ich versuche, zu Echo-Variable $title
, die ich in den zweiten Parameter get_include_contents
übergeben ($params
) als ein Array, die ich dann extrahieren. Das Problem ist, ich bekomme undefined variable $title
. Durch die Art und Weise der print_r
innen get_include_contents
sagt dies:
Array
(
[filename] => /home/lchost/EOSS2/app/view/layout.php
[params] => Array
(
[title] => Hello World
)
[title] => Hello World
[contents] => <!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello World</title>
</head>
<body>
<div id="todos"></div>
<input id="todo" type="text" />
<input type="button" id="addTodo" value="Add Todo" />
</body>
</html>
)
die, wie Sie $title
Variable definiert sehen ist ... , was das Problem sein könnte? irgendwelche Ideen? Vielen Dank im Voraus.
Ok Ich habe das behoben .. das Problem war irgendwo absolut anders ... das hat gut funktioniert. Admin, Sie können diese Frage schließen. Danke.
Ich erstelle mein eigenes Framework, ohne eines der verfügbaren Template-Engines zu verwenden. Schau dir EOSS2 auf github an. – durisvk
Ich verstehe, dass ich Ihnen vorschlug, es NICHT zu tun, da Sie offensichtlich kein tiefes PHP-Wissen haben, dafür sind Frameworks gedacht. – Johnny