Je suis nouveau sur PHP et je lis actuellement le livre "PHP pour les débutants absolus". Le livre enseigne actuellement la création de modèles et l'utilisation d'objets StdClass() pour éviter les conflits de noms.
J'ai un fichier modèle appelé page.php et un fichier de page d'accueil appelé index.php.
Ma page.code php
<?php return "<!DOCTYPE html> <html> <head> <title>$pageData->title</title> <meta http-equiv='Content-Type' content='text/html;charset=utf-8'/> </head> <body> $pageData->$content </body> </html>";
mon index.php
<?php //this correctly outputs any errors error_reporting( E_ALL ); ini_set("display_errors", 1); $pageData = new stdClass(); $pageData->title = "Test title"; $pageData->content = "<h1>Hello World</h1>"; $page = include_once "templates/page.php"; echo $page;
L'erreur que j'ai reçue est
Attention : variable non définie $title dans C:xampphtdocsch2templatespage.php à la ligne 5
Attention : variable non définie $content
dans C:xampphtdocsch2templatespage.php à la ligne 9Je ne comprends pas cela car c'est exactement ce que le livre enseigne, toute aide serait grandement appréciée et s'il existe une meilleure façon d'utiliser les modèles, n'oubliez pas que je suis un débutant, alors restez simple !
Votre page.php a l'air un peu bizarre.
return
Ce n'est pas quelque chose que j'utilise lors de l'impression de HTML. De plus, vous utilisez php et html dans la balise php, ce qui ne fonctionnera pas. Essayez ceci :Pas besoin de
echo $page
dans votre index.php, laissez page.php le faire./EDIT : Il y avait aussi une faute de frappe à la ligne 9 :
$pageData->$content;
Je l'ai corrigée.