* $this->declareVars( * 'varName1', * 'varName2', * array('varName3' => 'defaultValue', * 'varName4' => array() * ) * ); * * * @param string|array variable number of arguments, all string names of variables to test * @return void */ public function __invoke() { $view = $this->getView(); $args = func_get_args(); foreach ($args as $key) { if (is_array($key)) { foreach ($key as $name => $value) { $this->declareVar($name, $value); } } elseif (! isset($view->vars()->$key)) { $this->declareVar($key); } } } /** * Set a view variable * * Checks to see if a $key is set in the view object; if not, sets it to $value. * * @param string $key * @param string $value Defaults to an empty string * @return void */ protected function declareVar($key, $value = '') { $view = $this->getView(); $vars = $view->vars(); if (! isset($vars->$key)) { $vars->$key = $value; } } }