Saya baru dalam PHP dan sedang membaca buku "PHP untuk Pemula Mutlak". Buku ini sedang mengajar tentang templat dan menggunakan objek StdClass() untuk mengelakkan konflik penamaan.
Saya mempunyai fail templat bernama page.php dan fail halaman utama bernama index.php.
Kod halaman.php saya
<?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>";
indeks saya.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;
Ralat yang saya terima ialah
Amaran: Pembolehubah tidak ditentukan $title dalam C:xampphtdocsch2templatespage.php pada baris 5
Amaran: Pembolehubah tidak ditentukan $kandungan dalam C:xampphtdocsch2templatespage.php pada baris 9
Saya tidak faham perkara ini kerana inilah yang diajarkan oleh buku itu, sebarang bantuan amatlah dihargai dan jika ada cara yang lebih baik untuk menggunakan templat sila ingat saya seorang pemula jadi sila permudahkan!
Halaman.php anda kelihatan agak pelik.
return
Bukan sesuatu yang saya gunakan semasa mencetak html. Selain itu, anda menggunakan php dan html dalam teg php, yang tidak akan berfungsi. Cuba ini:Tidak perlu
echo $page
dalam index.php anda, biarkan page.php melakukannya./EDIT: Terdapat juga kesilapan menaip pada baris 9:
$pageData->$content;
Saya telah membetulkannya.