将一大堆重复的php转换成一个函数?

时间:2011-12-11 16:16:15

标签: php function dry

我的编程经验很少,所以从基本的php跳转到使用类,函数等有点令人生畏。

我正在构建一个小PHP脚本,用于解决用户通过表单选择的“主题”,并从该选择中加载一些特定文件。我已经建立了一个工作脚本,但它有很多重复,这是一个笑话。

// Add our theme names to variables
$theme1 = "theme1";
$theme2 = "theme2";
$theme3 = "theme3";

// Test to see what Theme the user chose.
// Theme 1
if ($themeChoice==$theme1) 
{
    // Load the theme
    $homepage = file_get_contents('../themes/'.$theme1.'/index.html');
    $mobile_js_main = file_get_contents('../themes/'.$theme1.'/js/main.js');
    $mobile_js_jquery = file_get_contents('../themes/'.$theme1.'/js/jquery.js');
    $mobile_css_easy = file_get_contents('../themes/'.$theme1.'/css/easy.css'); 
    $mobile_images_bg = file_get_contents('../themes/'.$theme1.'/images/bg.png');   
    $mobile_images_footer = file_get_contents('../themes/'.$theme1.'/images/footer.png');   
    $mobile_images_nav = file_get_contents('../themes/'.$theme1.'/images/nav.png'); 

    if ($AddPortfolioPage != '')
    {
        $portfolioPage = file_get_contents('../themes/'.$theme1.'/portfolio.html');
    }

    if ($AddContactPage != '')
    {
        $ContactPage = file_get_contents('../themes/'.$theme1.'/contact.html');
    }

    if ($AddBlankPage != '')
    {
        $blankPage = file_get_contents('../themes/'.$theme1.'/blank.html');
    }           
}

然后对每个主题重复这一点......这显然不是这样做的理想方法。任何帮助深表感谢!

1 个答案:

答案 0 :(得分:1)

将所有主题放入数组并循环查找所选主题。

$themes = array( "theme1", "theme2", "theme3");

foreach( $themes as $theme)
{
    if( $themeChoice == $theme)
    {
        $homepage = file_get_contents('../themes/'.$theme.'/index.html');
        $mobile_js_main = file_get_contents('../themes/'.$theme.'/js/main.js');
        $mobile_js_jquery = file_get_contents('../themes/'.$theme.'/js/jquery.js');
        $mobile_css_easy = file_get_contents('../themes/'.$theme.'/css/easy.css'); 
        $mobile_images_bg = file_get_contents('../themes/'.$theme.'/images/bg.png');   
        $mobile_images_footer = file_get_contents('../themes/'.$theme.'/images/footer.png');   
        $mobile_images_nav = file_get_contents('../themes/'.$theme.'/images/nav.png'); 

        if ($AddPortfolioPage != '')
        {
            $portfolioPage = file_get_contents('../themes/'.$theme.'/portfolio.html');
        }

       if ($AddContactPage != '')
        {
            $ContactPage = file_get_contents('../themes/'.$theme.'/contact.html');
        }

        if ($AddBlankPage != '')
        {
            $blankPage = file_get_contents('../themes/'.$theme.'/blank.html');
        }           

        break; // Break will exit the loop once the choice is found
    }
}