以下是PHP中面向对象编程的基础入门,供那些尚未熟悉这些概念的人使用.
对象是容器.它们包含表示单个抽象实体的定义函数和变量.面向对象编程的这一特性称为封装.这意味着单个胶囊可能包含多个函数和变量的定义,这些函数和变量旨在协同工作.
例如,如果要操纵在电子商务网站中销售的产品,则可以拥有代表该产品的对象.它可能包含一些定义产品名称,描述,价格等的变量.它还可能包含一些操作对象变量的函数,从数据库存储或检索产品的值,显示产品详细信息等.
在PHP中,使用类定义对象.类包含描述对象的函数和变量的所有定义.
以下是简单产品类的示例:
class Product
{
var $name;
var $description;
var $price;
function RetrieveFromDatabase($id)
{
/* ... */
}
function Display()
{
echo 'Name: ', HtmlSpecialChars($this->name),
'
',
'Description: ', HtmlSpecialChars($this->description),
'
',
'Price: ', $this->price;
}
};
您可以使用new运算符创建对象. PHP脚本可以创建同一个类的多个对象.您可以在同一类定义的电子商务网站中销售两种产品.
例如,如果你出售书A和书B,你可以使用同一个类来操纵它的名称,描述,价格等.下面是一个如何创建PHP对象的例子:
$book_a = new Product();
$book_a->name = 'Book A';
$book_a->description = 'Some description of book A';
$book_a->price = 9.95;
$book_a->Display();
$book_b = new Product();
$book_b->RetrieveFromDatabase('id-of-book-b');
$book_b->Display();
类允许您在内部操作信息,而无需使用全局变量在不同的类函数之间共享信息.
例如,如果要检索和显示数据库查询结果,可以使用具有执行查询的函数的类和显示它的其他函数.他们使用类变量$results来存储和检索查询结果句柄.
class Query
{
var $results;
function Execute($query)
{
$this->results = mysql_query($query);
return $this->results !== false;
}
function Display()
{
while(($row = mysql_fetch_row($this->results)))
print_r($row);
}
};
$query = new Query;
if($query->Execute(
'SELECT name, description, price FROM product'
))
$query->Display();
如您所见,您不需要使用任何全局函数或任何全局变量来在类函数之间共享信息.产品的所有行为都封装在Query类中.
面向对象编程提供了其他重要功能,例如继承,它允许创建作为现有类扩展的新类.扩展类可能有更多的函数和变量.它们还可以重新定义已在基类中定义的函数和变量.