0

我有以下 php 函数,它根据路径数组呈现模板数组。换句话说,如果您提供一组数组,例如:

$array_template = array(
    'carousel' => 'carousel', //type=>name (with out extension).
    'mini' => 'mini_feed'
)

$array_paths = array(
    'path_one' => 'path/to/one/',
    'path_two' => 'path/to/two/'
)

到这个函数:

protected function _render_templates_array($templates, array $template_name){
    foreach($template_name as $type=>$name){
        foreach($templates as $template=>$path){
            if(file_exists($path . $name . '.phtml')){
                require_once($path . $name . '.phtml');
            }
        }
    }

    return;
}

它应该找到并渲染每个文件,检查该文件的每个路径。

我遇到的问题是,我想出了如何让它在找到所有文件后停止搜索,但是,我是否将 else 附加到 if 并抛出我的错误?或者还有其他地方我应该抛出我的错误吗?

基本上我需要:

  1. 渲染所有模板,确保查看这些模板的所有路径。
  2. 如果在任何路径中都找不到模板,则抛出错误。
  3. 加载所有文件后停止处理。

想法?

4

1 回答 1

1

在两foreach行之间,添加$found = false;. 里面if,添加$found = true;两个“end foreach”之间,根据需要}添加。if(!$found) throw.....;

protected function _render_templates_array($templates, array $template_name){
    foreach($template_name as $type=>$name){
        $found = false;
        foreach($templates as $template=>$path){
            if(file_exists($path . $name . '.phtml')){
                require_once($path . $name . '.phtml');
                $found = true;
            }
        }
        if( !$found) throw new .......;
    }

    return;
}
于 2013-02-22T16:39:20.210 回答