PHP Classes

File: examples/enum_basics.php

Recommend this page to a friend!
  Classes of Oliver Anan   PHP One Line Enum   examples/enum_basics.php   Download  
File: examples/enum_basics.php
Role: Example script
Content type: text/plain
Description: basic example script
Class: PHP One Line Enum
Create enumerated types from arrays of values
Author: By
Last change:
Date: 12 years ago
Size: 1,718 bytes
 

Contents

Class file image Download
<?php
/**
 * This scripts demonstates some basic operations with enum objects.
 */
require '../class/Co3/CodeGen/Enum.php';
use
Co3\CodeGen\Enum as Enum;
//create a the enum Direction in the globsl namespace
Enum::create('Direction',array('Up','Down','Left','Right'));

//get an instance using a class constant
$up = Direction::get(Direction::Up);
$down = Direction::get(Direction::Down);

//get an instance using a string
$upToo = Direction::get('Up');

//$up == $upToo is true
echo '$up == $upToo is ';
echo (
$up == $upToo)? 'true' : 'false';
echo
'<br/>';

//$up === $upToo is true
echo '$up === $upToo is ';
echo (
$up === $upToo)? 'true' : 'false';
echo
'<br/>';

//$up == 'Up' is true
echo '$up == \'Up\' is ';
echo (
$up == 'Up')? 'true' : 'false';//$up is castet to string
echo '<br/>';

//$up === 'Up' is false
echo '$up === \'Up\' is ';
echo (
$up === 'Up')? 'true' : 'false';//type strict comparison
echo '<br/>';

//$up === $down is false
echo '$up == $down is ';
echo (
$up == $down)? 'true' : 'false';
echo
'<br/>';

//cast Direction to string
echo 'going ' . $up . '.<br/>';
echo
"going $up and {$down}<br/>";

//type hinting and switch
function getOpposit (Direction $d){
   
//switch does not work with objects so $d is implicitly casted to a string
   
switch($d){
        case
'Up':
            return
Direction::get('Down'); break;
        case
'Down':
            return
Direction::get('Up'); break;
        case
'Left':
            return
Direction::get('Right'); break;
        case
'Right':
            return
Direction::get('Left'); break;
    }
}

//cast to array
foreach(Direction::toArray() as $direction){
    echo
"The opposit of {$direction} is ";
    echo
getOpposit($direction);
    echo
'<br/>';
}