将switch保存到一个变量中,或者稍后调用该switch


Save switch into a variable or call the switch later on

我有一个foreach循环,打印1-12的数字,每个数字都是对问题和答案的引用。switch语句获取信息并打印摘要。

foreach ($_POST as $name => $value) {

    $groupSplit = str_split($name, 5);
//  print_r("Group Num: " . $groupSplit[1] . "<br/>");
    $optSplit = str_split($value, 3); // splits opt and the num x 
//  print_r("Option Num " . $optSplit[1] . "<br/>");

switch ($groupSplit[1]) {
    case 1:
        echo  "<h2>" . $group1 . "</h2>" . isEven($optSplit[1] . "<br><button onclick='window.history.back()'>Start Over</button><button>Confirm and Send</button>") ;
        break;
    case 2:
        echo  "<h2>" . $group2 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>";
        break;
    case 3:
        echo  "<h2>" . $group3 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>" ;
        break;
    case 4:
        echo  "<h2>" . $group4 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>";
        break;
    case 5:
        echo  "<h2>" . $group5 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>";
        break;
    case 6:
        echo  "<h2>" . $group6 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>";
        break;
    case 7:
        echo  "<h2>" . $group7 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>";
        break;
    case 8:
        echo  "<h2>" . $group8 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>";
        break;
    case 9:
        echo  "<h2>" . $group9 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>";
        break;
    case 10:
        echo  "<h2>" . $group10 . "</h2>" . isEven($optSplit[1]). "<br><button onclick='window.history.back()'>Start Over</button>" ;
        break;
    case 11:
        echo  "<h2>" . $group11 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>";
        break;
    case 12:
        echo  "<h2>" . $group12 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>";
        break;
}

显示摘要后,我想将其以电子邮件的形式发送。由于有多种情况,我需要使开关功能可重复使用的电子邮件。我曾尝试将其存储在一个变量和一个函数值,但它没有工作。

是否有办法在不复制粘贴的情况下多次调用这个switch函数?

谢谢。

我自己做的,问题是函数必须在foreach之前声明。

<?php

$answers = array();
function isEven($number){
    if ($number % 2 == 0) {
      return "No";
    } else {
        return "Yes";
    }
}

function showSummary(){
$group1 = "q1 ?";
$group2 = "q1 ?";
$group3 = "q1 ?";
$group4 = "q1 ?";
$group5 = "q1 ?";
$group6 = "q1 ?";
$group7 = "Does it archive when Archive is clicked ?";
$group8 = "q1 ?";
$group9 = "Is an Outlook archiving dialogue open ?";
$group10 = "Is Outlook still respnonding ?";
$group11 = "Does it happen all the time ?";
$group12 = "Do you get an error message ?"; 
foreach ($_POST as $name => $value) {

    $groupSplit = str_split($name, 5);
//  print_r("Group Num: " . $groupSplit[1] . "<br/>");
    $optSplit = str_split($value, 3); // splits opt and the num x 
//  print_r("Option Num " . $optSplit[1] . "<br/>");

    switch ($groupSplit[1]) {
    case 1:
        echo  "<h2>" . $group1 . "</h2>" . isEven($optSplit[1] . "<br><button onclick='window.history.back()'>Start Over</button><button>Confirm and Send</button>") ;
        break;
    case 2:
        echo  "<h2>" . $group2 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>";
        break;
    case 3:
        echo  "<h2>" . $group3 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>" ;
        break;
    case 4:
        echo  "<h2>" . $group4 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>";
        break;
    case 5:
        echo  "<h2>" . $group5 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>";
        break;
    case 6:
        echo  "<h2>" . $group6 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>";
        break;
    case 7:
        echo  "<h2>" . $group7 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>";
        break;
    case 8:
        echo  "<h2>" . $group8 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>";
        break;
    case 9:
        echo  "<h2>" . $group9 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>";
        break;
    case 10:
        echo  "<h2>" . $group10 . "</h2>" . isEven($optSplit[1]). "<br><button onclick='window.history.back()'>Start Over</button>" ;
        break;
    case 11:
        echo  "<h2>" . $group11 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>";
        break;
    case 12:
        echo  "<h2>" . $group12 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>";
        break;
}
}



}showSummary();
showSummary();
?>

我需要更多的信息来描述这个函数,但是下面的代码至少更简洁:

if ($groupSplit[1] == 1){
    $retVal =  "<h2>" . $group1 . "</h2>" . isEven($optSplit[1] . "<br><button onclick='window.history.back()'>Start Over</button><button>Confirm and Send</button>") ;
}
else{
    $retVal =  "<h2>" . ${"group".$groupSplit[1]} . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>";
}
相关文章: