类的声明
成员属性
- 成员属性使用“var”关键字来进行声明
- 如果要使用修饰符,则不需要使用“var”关键字,不如:static、public、private等等
<?php
class person{
var $age;
var $name;
public $sex;
}
?>
成员方法
- 使用function关键字来声明成成员方法
- 可以使用一些修饰符来进行修饰,但是要注意,成员方法应该与类相关。
<?php
class person{
var $age;
var $name;
public $sex;
#声明一个成员方法
public function say(){
echo "我是".$name."<br/>";
}
#声明成员方法
public function getAge(){
return $age;
}
}
?>
通过类实例化对象
类的实例化
<?php
class person{
var $age;
var $name;
public $sex;
#声明一个成员方法
public function say(){
echo "我是".$name."<br/>";
}
public function getAge(){
return $age;
}
}
$zhangsan=new person(); #实例化一个类
?>
对象中的成员访问
- 以上方法适用于所有成员与所有成员方法,除非这个成员用了static修饰符进行修饰
<?php
class person{
var $age;
var $name;
public $sex;
#声明一个成员方法
public function say(){
echo "我是".$this->name."<br/>";
}
public function getAge(){
return $this->age;
}
}
$zhangsan=new person(); #实例化一个类
$zhangsan->name="zhangsan";
$zhangsan->say();
#运行结果
#我是zhangsan
?>
使用$this对象访问成员变量
- 在创建对象时,会自动创建一个名为$this的对象,对象的类型与创建对象的类型一致,用来指代当前的对象,一般用于在类的内部用于访问自己的成员属性或者是成员方法。在上面的例子当中,就使用$this->name来访问person类的name属性。
<?php
class person{
var $age;
var $name;
public $sex;
#声明一个成员方法
public function say(){
echo "我是".$this->name."<br/>";
}
public function getAge(){
return $this->age;
}
}
$zhangsan=new person(); #实例化一个类
$zhangsan->name="zhangsan";
$zhangsan->age=32;
echo $zhangsan->getAge(); #输出age属性
// 运行结果:
// 32
?>
构造方法和析构方法
- 在每个声明的类中都有一个称为构造方法的特殊成员方法,如果没有显式地声明它,类中都会默认存在一个没有参数列表并且内容为空的构造方法。如果显式地声明它,则类中的默认构造方法将不会存在。当创建一个对象时,构造方法就会被自动调用一次,即每次使用关键字new来实例化对象时都会自动调用构造方法,不能主动通过对象的引用调用构造方法。所以通常使用构造方法执行一些有用的初始化任务,比如对成员属性在创建对象的时候赋初值等。
- 构造方法的声明
- 一个类中只能有一个构造方法,若不声明构造方法,则系统是自动创建一个参数为空的构造方法
- 构造方法的名称是固定的,不能随意更改
<?php
class person{
var $age;
var $name;
public $sex;
#构造方法
function __construct($name,$age,$sex){ #注意有两个下划线
$this->name=$name;
$this->age=$age;
$this->sex=$sex;
}
#声明一个成员方法
public function say(){
echo "我是".$this->name."<br/>";
}
public function getAge(){
return $this->age;
}
}
$zhangsan=new person("张三",32,"男"); #实例化一个类
echo $zhangsan->name;
echo $zhangsan->getAge();
// 运行结果:
// 张三32
?>
- 析构方法:与构造方法相对应的就是析构方法,PHP将在对象被销毁前自动调用这个方法。析构方法是PHP 5中新添加的内容,在 PHP4中并没有提供。析构方法允许在销毁一个对象之前执行一些特定操作,例如关闭文件,释放结果集等。
- 析构方法的声明
<?php
class person{
var $age;
var $name;
public $sex;
#构造方法
function __construct($name,$age,$sex){ #注意有两个下划线
$this->name=$name;
$this->age=$age;
$this->sex=$sex;
}
#声明一个成员方法
public function say(){
echo "我是".$this->name."<br/>";
}
public function getAge(){
return $this->age;
}
function __destruct(){
echo "再见".$this->name."<br/>";
}
}
$zhangsan=new person("张三",32,"男"); #实例化一个类
$zhangsan=NULL;
$lisi=new person("李四",32,"男"); #实例化一个类
$wangwu=new person("王五",32,"男"); #实例化一个类
// 运行结果:
// 再见张三
// 再见王五
// 再见李四
?>
- 在上面的程序当中,$zhangsan被指定到了NULL,因此变量失去了对象的引用,因此执行析构方法,而对于$lisi与$wangwu来说,是在脚本执行结束后,才调用的析构方法,由于栈的后进先出的特点,先释放最后创建的对象,以此类推
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容