php 构造函数实例 定义类级别以控制类的行为

发布时间:2020-07-02编辑:脚本学堂
分享一例php代码,学习下php面向对象中构造函数的用法,通过定义类的级别来控制类的行为,有需要的朋友参考下。

php构造函数的例子。
代码:
 

复制代码 代码示例:

<?php
/**
* php 构造函数
* edit:www.jb200.com
*/
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";
?>