PHP/Class/Class Constant Property — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 07:00, 26 мая 2010
Class Constant
<?php
class Employee {
const AVAILABLE = 0;
const OUT_OF_STOCK = 1;
public $status;
}
print Employee::AVAILABLE;
?>
Define class constant
<?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;
?>
Define class level constant value to control the class behaviour
<?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";
?>