PHP/Class/Class Constant Property
Class Constant
<source lang="html4strict">
<?php class Employee {
const AVAILABLE = 0; const OUT_OF_STOCK = 1; public $status;
} print Employee::AVAILABLE; ?>
</source>
Define class constant
<source lang="html4strict">
<?php
class math_functions { const PI = "3.14159265"; const E = "2.7182818284"; const EULER = "0.5772156649"; /* define other constants and methods here... */ } echo math_functions::PI;
?>
</source>
Define class level constant value to control the class behaviour
<source lang="html4strict">
<?php abstract class Product {
protected $count; const FIXED = 1; const TIMED = 2; private $costtype = 1; function __construct( $count, $costtype=1 ) { $this->count = $count; $this->costtype = $costtype; } function cost() { switch ( $this->costtype ) { CASE self::TIMED : return (5 * $this->count); break; CASE self::FIXED : return 30; break; default: $this->costtype = self::FIXED; return 30; } } function chargeType() { switch ( $this->costtype ) { CASE self::TIMED : return "hourly rate"; break; CASE self::FIXED : return "fixed rate"; break; default: $this->costtype = self::FIXED; return "fixed rate"; } }
} class ProductOne extends Product { } class ProductTwo extends Product { } $lesson = new ProductTwo( 4, Product::TIMED ); $lesson = new ProductTwo( 4, Product::FIXED ); $lesson = new ProductTwo( 4, 33 ); print "lesson charge {$lesson->cost()}. Charge type: {$lesson->chargeType()}\n"; ?>
</source>