您的位置:首页 > 编程语言 > PHP开发

php 创建类

2016-05-09 10:49 288 查看
6.2.1 创建类

在PHP 中,要创建一个类很简单,只需要关键字class 即可,一个最简单的类如下所示:

class classname

{

}

在上面的代码中,classname 表示类名,类名的选择尽量有一定的意义,这样方便记忆和

理解。

当然以上只是创建了一个空类而已,如果想它实现一定的功能,必须为该类添加属性和方法。

下面的代码为类添加了两个属性:

第6 章 PHP 与面向对象程序设计 187

class classname

{

var $myName;

var $myAge;

}

创建类的属性也很简单,只需要在类中声明变量即可。声明了属性之后,可以获取该属

性的值。

除了可以创建属性之外,还可以为类创建方法。为类创建方法也很简单,只需要创建函

数即可,函数既可以有参数,也可以没有参数。如下面代码所示:

class classname

{

var $myName;

var $myAge;

function getName()

{

}

function getAge($arg1,$arg2)

{

}

}

在上面代码中,创建了两个类的方法,方法名称分别为getName 和getAge。可以往函数

中添加代码以实现某种设定的功能。

代码 6-1 定义了一个名为Cart 的类。

【代码 6-1】 class_1.php

<?php

class Cart

{

var $items; // 购物车中的项目

// 把 $num 个 $artnr 放入车中

function add_item ($artnr, $num)

{

//代码

}

// 把 $num 个 $artnr 从车中取出

function remove_item ($artnr, $num)

{

//代码

}

}

?>

在代码6-1 中,定义了一个属性和两个方法。

提示

不能将一个类分开定义到多个文件或多个 PHP 标记对中,下面的代码是错

误的。

<?php

class test {

?>

188 PHP 网络编程技术与实例

<?php

function test() {

print 'OK';

}

}

?>

提示

名称 stdClass 已经被Zend 使用并保留。不能在PHP 代码中定义名为stdClass

的类。函数名_sleep 和_wakeup 在PHP 类中是魔术函数。除非想要与之联系的

魔术功能,否则在任何类中都不能以此命名函数。PHP 将所有以_开头的函数名

保留为魔术函数。除非想要使用一些见于文档中的魔术功能,否则建议不要在

PHP 中将函数名以_开头。

6.2.2 构造函数

有过类编程经验的读者一定知道,大多数的类都有构造函数。当一个类实例被调用时,

将调用构造函数,通常在构造函数中将执行一些初始化的操作。

在类中声明构造函数,同声明其他函数一样,只是构造函数的名称是固定的,即函数名

称必须为__construct()。这是在PHP 5.0 中新增加的特性,在以前的版本中,构造函数的名称

必须与类名相同。但是为了向下兼容,PHP 首先在类中搜索是否有__construct()函数,如果没

有,则继续搜索是否含有与类同名的函数。

构造函数虽然可以由编程者主动调用,但是大部分时候,都是在创建类对象实例的时候

自动调用。

声明构造函数的方法如下:

class classname

{

function __construct($param)

{

//代码

}

}

?>

构造函数可以传递参数,这些参数可以在调用类的时候传递。

6.2.3 析构函数

在PHP4.0 以前,并没有提供析构函数,可以使用register_shutdown_function()函数来模

拟多数析构函数的效果。析构函数是一种当对象被销毁时,无论使用了unset()或者简单的脱

离范围,都会被自动调用的函数。析构函数允许在销毁一个类之前操作或者完成一些功能。

在 PHP 中,与构造函数的名称类似,一个类的析构函数名称必须是_destruct()。

提示 析构函数不能带有任何参数。

6.2.4 类的实例化

在声明了一个类之后,如果要使用该类,必须创建该类的一个实例。实际上也可以将该

第6 章 PHP 与面向对象程序设计 189

类作为一个变量,在使用之前必须手动定义。定义该类实例,被称为创建一个实例或者实例

化一个类。在PHP 中,可以使用关键字“new”来创建一个类实例。

实例 6-1 创建一个简单的类

本实例创建了一个简单的类,然后创建了3 个该类的实例,如代码6-2 所示。

【代码 6-2】 firstclass.php

<?php

class myName

{

function __construct($myName) //构造函数

{

echo("我的名字是:$myName<br>");

}

}

//下面创建类实例

$name1=new myName("小狗");

$name2=new myName("小猫");

$name3=new myName("小马");

?>

执行结果如图6-4 所示。

图 6-4 类的构造函数

在以上代码中,“new myName("小狗")”中的参数“小狗”会被自动传递到构造函数,

然后构造函数直接使用该参数。

提示 construct 前面是两个连续下划线。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: