PHP面接問題用紙02


3、HTMLとPHPを分離して使用できるテンプレート
答えはPHPコードです。
//controller
$view = new View();
echo $view->display('out.php', array('name'=>'stefan', 'blog'=>'http://stefan321.iteye.com'));

//View Class
class View{

	function display($view_filename, array $view_data) {

		// Import the view variables to local namespace
		extract($view_data, EXTR_SKIP);

		// Capture the view output
		ob_start();

		try
		{
			// Load the view within the current scope
			include $view_filename;
		}
		catch (Exception $e)
		{
			// Delete the output buffer
			ob_end_clean();

			// Re-throw the exception
			throw $e;
		}

		// Get the captured output and close the buffer
		return ob_get_clean();
	}

} // end class
//out.php
<h1><?php echo $name ?> </h1>
<a href="<?php echo $blog ?>">Blog</a>