# Working with Multiple Values

## Working with Multiple Values

Often you will find yourself working with more complex data. For example, you might want to respond differently to each of the six possible rolls of a die. The Binary Dice program illustrated in Figures 3.7 and 3.8 demonstrates just such a situation. Figure 3.7: The roll is a 5, and the program shows the binary representation of that value. Figure 3.8: After rolling again, the program again reports the binary representation of the new roll.

### Writing the Binary Dice Program

This program has a slightly more complex if structure than the others, because the binary value should be different for each of six possible outcomes. An ordinary if structure would not be sufficient, but it is possible to put several if structures together to solve this kind of dilemma.

```<html>
<title>Binary Dice</title>
<body>
<h1>Binary Dice</h1>
<h3>Demonstrates multiple if structure</h3>

<?
\$roll = rand(1,6);
print "You rolled a \$roll";
print "<br>";

if (\$roll == 1){
\$binValue = "001";
} else if (\$roll == 2){
\$binValue = "010";
} else if (\$roll == 3){
\$binValue = "011";
} else if (\$roll == 4){
\$binValue = "100";
} else if (\$roll == 5){
\$binValue = "101";
} else if (\$roll == 6){
\$binValue = "110";
} else {
print "I don't know that one...";
} // end if

print "<br>";
print "<img src = die\$roll.jpg>";
print "<br>";
print "In binary, that's \$binValue";
print "<br>";
print "<br>";
print "<br>";

?>
<br>

</body>
</html>
```

### Using Multiple else if Clauses

The binaryDice program still has only one if structure, but that structure has multiple else clauses. The first condition simply checks to see if \$roll is equal to one. If it is, the appropriate code runs (assigning the binary representation of 1 to the \$binValue variable.) If the first condition is false, the program looks at all the successive if else clauses until it finds a condition that evaluates to true. If none of the conditions is true, the code in the else clause will be executed.

 TRICK? You may be surprised that I even put an else clause in this code. Since you know the value of \$roll must be between one and six, and we've checked each of those values, the program should never need to evaluate the else clause. Things in programming don't always work out the way you expect, so it's a great idea to have some code in an else clause even if you don't expect to ever need it. It's much better to get a message from your program explaining that something unexpected occurred than to have your program blow up inexplicably while your users are using it.

The indentation for a multiple-condition if statement is useful so you can tell which parts of the code are part of the if structure, and which parts are meant to be executed if a particular condition turns out to be true.  Chapter 1: Exploring the PHP Environment  Chapter 2: Using Variables and Input  Chapter 3: Controlling Your Code with Conditions and Functions  Examining the " Petals Around the Rose " Game  Creating a Random Number  Using the if Statement to Control Program Flow  Working with Negative Results  Working with Multiple Values  Using the switch Structure to Simplify Programming  Combining a Form and Its Results  Using Functions to Encapsulate Parts of the Program  Using Parameters and Function Values  Managing Variable Scope  Returning to the Petals Game  Summary  Challenges  Chapter 4: Loops and Arrays: The Poker Dice Game  Chapter 5: Better Arrays and String Handling  Chapter 6: Working with Files  Chapter 7: Using MySQL to Create Databases  Chapter 8: Connecting to Databases Within PHP  Chapter 9: Data Normalization  Chapter 10: Building a Three-Tiered Data Application