博客来自《深入PHP 面向对象、模式与实践》第三版
使用方法
属性可以让对象存储数据,类方法则可以让对象执行任务。方法是在类中声明的特殊函数。方法声明类似于函数声明。function关键字在方法名之前,方法名之后圆括号中的是可选的参数列表。方法体用大括号括起来。
public function myMethod($argument,$another)
{
···
···
}
和函数不同的是,方法必须在类中声明。它们也可以接收限定词,包括可见性关键字。和属性一样,方法可以被声明public、protected或private。将方法声明为public,就可以在当前对象外调用该方法。如果在方法声明中省略了可见性关键字,那么方法将被隐式声明为public。
在大多数情况下,我们可以使用->连接对象变量和方法名来调用方法,调用方法时必须使用一对圆括号
class ShopProduct{
public $title="default product";
public $producerMainName="main name";
public $producerFirstName="first name";
public $price=0;
function getProducer()
{
return "{$this->producerFirstName}"."{$this->producerMainName}";
}
}
include '3.1.php';
$product1=new ShopProduct();
//调用类方法
print $product1->getProducer();
我们向ShopProduct类中增加了getProducer()方法。注意声明方法时没有指定可见性关键字,这是会默认为public,以供外面调用。
我们在该方法中使用了一个特性。$this伪变量把类指向一个对象实例。比如在本例子中$this就是“当前实例”的意思。$this->producerFirstName就是当前实例的producerFirstName属性。
创建构造方法
创建对象时,构造方法(构造器)会自动调用。构造方法可以用来确保必要的属性设置,并完成任何需要准备的工作。在PHP5之前的版本中,构造方法使用和所在类相同的名字,因此ShopProduct类可以使用ShopProduct()方法作为它的构造方法。虽然在PHP5中是有效的,但是还是建议把构造方法命名为__construct()。下面是ShopProduct类定义的构造方法
class ShopProduct{
public $title;
public $producerMainName;
public $producerFirstName;
public $price=0;
function __construct($title,$producerMainName,$producerFirstName,$price)
{
$this->title=$title;
$this->producerMainName=$producerMainName;
$this->producerFirstName=$producerFirstName;
$this->price=$price;
}
function getProducer()
{
return "{$this->producerFirstName}"."{$this->producerMainName}";
}
}
在上例中我们把之前的初始化功能集成到类中,以减少代码中的重复。当使用new操作符创建对象时,__construct方法会被调用。
任何给定的参数都将传递给构造方法。因此在我们的例子中,传递了商品名称、生产者姓、名和商品价格到构造方法。构造方法使用伪变量$this给对象的每个属性赋值。
来源:CSDN
作者:supreme H
链接:https://blog.csdn.net/qq_42683219/article/details/104097460