类和对象的概念是 PHP 面向对象编程方法的核心。类是其对象的模板描述,包括处理这些属性的属性和函数。对象 是其类的实例,特征是类中定义的属性和函数。
PHP 定义一个类
要定义一个类,PHP 有一个关键字 “class”。类似地,PHP 提供关键字 “new” 来声明任何给定类的对象。
PHP 定义新类的一般形式如下 -
<?php
class phpClass {
var $var1;
var $var2 = "常量字符串";
function myfunc ($arg1, $arg2) {
[..]
}
[..]
}
?>
关键字 class 后面跟要定义的类名。类名遵循与 PHP 变量相同的命名约定。它后面是一对大括号,其中包含任意数量的变量声明(属性)和函数定义。
变量声明以另一个保留关键字 var 开头,后跟约定 $variable 名称;它们也可能具有对 常量值 的初始赋值。
函数定义看起来与独立的 PHP 函数非常相似,但对于类来说是本地的,将用于设置和访问对象数据。类中的函数也称为方法。
例子
下面是一个定义 Book 类型的类的示例 -
class Book {
/* 成员变量 */
var $price;
var $title;
/* 成员函数 */
function setPrice($par){
$this->price = $par;
}
function getPrice(){
echo $this->price ."<br/>";
}
function setTitle($par){
$this->title = $par;
}
function getTitle(){
echo $this->title ." <br/>";
}
}
从对象上下文中调用方法时,伪变量 $this 可用。$this 是指调用对象。
Book 类有两个成员变量(或属性): $title 、 $price。成员变量(有时也称为实例变量)通常每个对象具有不同的值;就像每本书的标题和价格都不同。
Book 类具有函数(类中定义的函数称为方法):setTitle() 、 setPrice()。这些函数是引用对象和参数调用的,用于分别设置 title 和 price 成员变量的值。
Book 类还具有 getTitle() 和 getPrice() 方法。调用时,它们返回传递其引用的对象的 title 和 price。
定义类后,可以使用 new 运算符声明一个或多个对象。
$b1 = new Book;
$b2 = new Book;
new 运算符分配每个对象的成员变量和方法所需的内存。在这里,我们创建了两个对象,这些对象彼此独立,它们将分别存在。
每个对象都可以使用 “->” 运算符访问其成员变量和方法。例如,b1 对象的 $title 属性是 “$b 1->title”,要调用 setTitle() 方法,请使用 “$b 1->setTitle() ”语句。
要设置 b1 对象的标题和价格,
$b1->setTitle("PHP 编程");
$b1->setPrice(450);
同样,以下语句获取 b1 书籍的标题和价格 -
echo $b1->getPrice();
echo $b1->getTitle();
例子
下面给出了定义 Book 类、声明两个对象并调用成员函数的完整 PHP 脚本。
<?php
class Book {
/* 成员变量 */
var $price;
var $title;
/* 成员函数 */
function setPrice($par){
$this->price = $par;
}
function getPrice(){
echo $this->price ."\n";
}
function setTitle($par){
$this->title = $par;
}
function getTitle(){
echo $this->title ."\n";
}
}
$b1 = new Book;
$b2 =new Book;
$b1->setTitle("PHP 编程");
$b1->setPrice(450);
$b2->setTitle("PHP 基本知识");
$b2->setPrice(275);
$b1->getTitle();
$b1->getPrice();
$b2->getTitle();
$b2->getPrice();
?>
它将产生以下输出 -
450
PHP 基本知识
275