PHP/Class/Class Constant Property

Материал из Web эксперт
Версия от 10:00, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

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>