Currently I have a simple Model-View-Controller, in which I have a simple View class. The View class has a render method that receives an array from a helper class, and this array ($this->viewData) is turned into variables which are then used in a template.

So the flow is like this:

An array is passed to the View class -> the array keys and values are turned into variables -> those variables are used in a template.

An example would be:

[website_title] => Example.com -----> $website_title = Example.com; -----> echo $website_title (within the title tags in the template)

However, I also want to have default variables provided in the class somehow such that, if a required variable is not provided in the passed array, then the default value would be loaded.


So, with the example above, if the passed array does not contain the website_title, then the default website_title will be loaded from somewhere.

Currently, my View class does the behavior I have just described (see below). However, I feel like there is probably a better way to do this instead of including "hard coded" variables in the class.

Any ideas?

Code:
class View extends ActionController {

    public function render() {

        //Default variables, (To be placed in an outside/included file(?))
        $title = "Example.com";

        //This foreach function goes over all of the elements in $this->viewData array, creates
        //a variable for every value, and the name of the value (the variable name) is the key's value.
        foreach ($this->viewData as $key => $value) {
            $$key = $value;
        }

        //Including a template file within which variables are echoed
        require_once $this->pageDir . "/default.tpl";
    }
}
Thank you all in advance!