使用方法
属性可以让对象存储数据,类方法则可以让对象执行任务。方法是类中声明的特殊函数,也可以接受限定词,包括可见性关键字。和属性一样,方法可以被声明为public、protected或private,默认为public。
<?php
//使用类的方法
//方法是类中声明的特殊函数,它们也可以接受限定词,默认为public
class ShopProduct {
public $title = '商品名称';
public $producerName = '制造商名称';
public $place = '产地';
public $price = 0;
function getProducer() {
return "$this->place" . "$this->producerName";
}
}
$producer1 = new ShopProduct();
$producer1->title = '《深入PHP面向对象编程》';
$producer1->producerName = '人民邮电出版社';
$producer1->place = '北京';
$producer1->price = 69;
echo $producer1->getProducer();
?>
这时初始化对象依然很麻烦,另外还无法保证所有属性在初始化的时候被设置。因此,我们需要一个当类实例化的时候可被自动调用的类方法。创建对象时,构造方法__construct()
会被自动调用,构造方法用来完成需要准备的工作。
<?php
//创建构造方法
// 构造方法可以用来确保必要的属性被设置,并完成任何需要准备的工作
class ShopProduct {
public $title = '商品名称';
public $producerName = '制造商名称';
public $place = '产地';
public $price = 0;
function __construct( $title, $producerName, $place, $price ) {
$this->title = $title;
$this->producerName = $producerName;
$this ->place = $place;
$this->price = $price;
}
function getProducer() {
return "$this->place" . "$this->producerName";
}
function getSummaryLine() {
$base = "$this->title" . "\t" . "$this->place" . "\t" . "$this->producerName";
return $base;
}
}
// 创建实例化对象
$producer1 = new ShopProduct( '《信息简史》', '人民邮电出版社', '北京', 69 );
echo $producer1->getProducer();
echo $producer1->getSummaryLine();
?>
你所设计的类应该让对象的使用者确定它们的特性。