Home  >  Article  >  Backend Development  >  CLASS_PHP

CLASS_PHP

WBOY
WBOYOriginal
2016-06-01 12:39:50961browse

一个class是一个变量和使用这些变量的函数的组合。定义class使用如下的语法:


// Add $num articles of $artnr to the cart

function add_item ($artnr, $num) { $this->items[$artnr] += $num; }

// Take $num articles of $artnr out of the cart

function remove_item ($artnr, $num) {

if ($this->items[$artnr] > $num) {

$this->items[$artnr] -= $num;

return true;

} else {

return false;

}

}

}

?>

 

如上所示,定义了一个名字为Cart的class。这个class由多个描写物品的数组和添加项目、删除项目的函数组成。

Class是一种类型,这就是说,它是实际变量的设计蓝图。您可以根据设计建立一个变量组和针对它们的一些新的操作。示例如下:

 

$cart = new Cart;

$cart->add_item("10", 1);

 

如上所示,建立了一个类型为class Cart的对象$cart。这个对象中的函数add_item()被调用来添加一个物品号为10的项目。

Class可以使用其他的Class来扩展。这个扩展的或者继承的class(类)拥有基本class所有的变量和函数同时您还可以在其中加如您自己做的扩展定义。要这样定义需要使用扩展定义的关键词。

 

class Named_Cart extends Cart {

var $owner;

function set_owner ($name) {

$this->owner = $name;

}

}

 

以上定义了一个名字为Named_Cart的class(类),这个类拥有所有包含于类Cart中的变量和函数,同时还添加了一个变量$owner和函数set_owner()。您可以建立一个有名字的cart,同时获得cart的拥有者名字。您还可以在类Named_Cart中,使用普通的属于类cart的函数。

 

$ncart = new Named_Cart; // Create a named cart

$ncart->set_owner ("kris"); // Name that cart

print $ncart->owner; // print the cart owners name

$ncart->add_item ("10", 1); // (inherited functionality from cart)

 

在这个类的函数中变量$this表示这个对象。在当前的对象中,您可以使用$this->something来访问任何变量和函数。

当您建立一个新的类时,有一个构造器函数将被自动的调用。如果某个函数的名字和类的名字一样,那么它就成为构造器:

 

class Auto_Cart extends Cart {

function Auto_Cart () {

$this->add_item ("10", 1);

}

}

 

在上面的例子中,定义了一个名字为Auto_Cart的类,它是在原来的类Cart中加上了一个构造器函数,这个构造器函数初始化了类Cart使用的方法是:在每次建立一个类的时候添加一个物品号为10的一个项目。构造器还可以显示一些信息,这些信息可以被随意的挑选,这使他们可以变的十分的有用,

 

class Constructor_Cart {

function Constructor_Cart ($item = "10", $num = 1) {

$this->add_item ($item, $num);

}

}

// Shop the same old boring stuff

$default_cart = new Constructor_Cart;

// Shop for real...

$different_cart = new Constructor_Cart ("20", 17);

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn