PHP: Cascading Conditionals

Derek Bridge

Department of Computer Science,
University College Cork

PHP: Cascading Conditionals

Aims:

Cascading conditionals

Example

if ( $grade < 40 )
{
    echo '<p>Fail</p>';
}
elseif ( 40 <= $grade && $grade < 45 )
{
    echo '<p>Pass degree</p>';
}
else
{
    echo '<p>Honours degree</p>';
}

Class exercise

GradeOutcome
less than 40%Fail
40% and above but less than 45%Pass
45% and above but less than 50%Third class Hons
50% and above but less than 60%Second class Hons Grade 2
60% and above but less than 70%Second class Hons Grade 1
70% and aboveFirst class Hons

Another example

Version 1 of tax.php

$salary = (int) $_GET['salary'];
if ( $salary <= 20000 )
{
    $tax = 0.15 * $salary;
}
elseif ( $salary <= 50000 )
{
    $tax = 0.28 * $salary;
}
else
{
    $tax = 0.45 * $salary;
}
echo "<p>Send us {$tax} eurines or your first-born child</p>";

Class exercise

Version 2

if ( $salary <= 50000 )
{
    $tax = 0.28 * $salary;
}    
elseif ( $salary <= 20000 )
{
    $tax = 0.15 * $salary;
}
else
{
    $tax = 0.45 * $salary;
}

Version 3

if ( 0 <= $salary && $salary <= 20000 )
{
    $tax = 0.15 * $salary;
}
elseif ( 20000 < $salary && $salary <= 50000 )
{
    $tax = 0.28 * $salary;
}
elseif ( 50000 < $salary )
{
    $tax = 0.45 * $salary;
}

Version 4

if ( 20000 < $salary && $salary <= 50000 )
{
    $tax = 0.28 * $salary;
}
elseif ( 0 <= $salary && $salary <= 20000 )
{
    $tax = 0.15 * $salary;
}
elseif ( 50000 < $salary )
{
    $tax = 0.45 * $salary;
}

Version 5

if ( 0 <= $salary && $salary <= 20000 )
{
    $tax = 0.15 * $salary;
}

if ( 20000 < $salary && $salary <= 50000 )
{
    $tax = 0.28 * $salary;
}

if ( 50000 < $salary )
{
    $tax = 0.45 * $salary;
}