PHP通过class关键字加类名来定义一个类的格式如:
<?php
class lei{
//......
}
?> //上述lei就是一个最简单的类
再来一个概念,类中的成员函数又称为什么呢?答:成员方法。成员方法就是在类中实现某个功能的函数,仅仅在这个类中实现~~
例如<?php
class sport{
function lanqiu()
{
//..........
}
}
?>
上述类sport中定义的函数lanqiu()就是作用在类sport中的成员方法,你可以写一些函数实现的功能。
那什么是类的实例化?上述类已经定义了sport 类的成员方法也已经添加,假设这个成员方法的功能已经实现,那我们该如何使用这个类呢,我认为使用这个类的方法就是类的实例化,你不实例化你定义个类干啥啊==
继续,实例化是通过关键字new来声明一个对象,然后使用如下格式:“对象名->成员方法”
看个实例,借鉴自(潘凯华.php从入门到精通)
<?php
class SportObject
{
function beatBasketball($name,$height,$avoirdupois,$age,$sex)
{
if($height>180 and $avoirdupois<=100)
{
return $name.",符合打篮球的要求!";
}
else
{
return $name.",不符合打篮球的要求!";
}
}
}
$sport = new SportObject(); //这里sport就是一个实例化后的对象
echo $sport->beatBasketball(‘明日‘,‘185‘,‘80‘,‘20周岁‘,‘男‘); //调用成员方法
?>
结果为:明日,符合打篮球的要求!
那么什么是成员变量?就是类中的变量 定义类成员变量的格式 关键字 成员变量名
访问成员变量和访问成员方法一样 对象名—>成员变量
再来个实例
<?php
class
SportObject
{
public
$name; //定义成员变量
public $height;
public
$avoirdupois;
public
function bootFootBall($name,$height,$avoirdupois) //定义成员方法
{
$this->name=$name;
//$this->作用是调用本类中的成员变量或成员方法
$this->height=$height; //这里注意,$this->后面的变量是没有$符号的
$this->avoirdupois=$avoirdupois;
if($this->height<185 and
$this->avoirdupois<85) //这里$this->height也可写成$height
{
return
$this->name.",符合踢足球的要求";
}
else
{
return
$this->name.",不符合踢足球的要求";
}
}
}
$sport
= new SportObject();
echo
$sport->bootFootBall(‘明日‘,‘185‘,‘80‘);
?>
接下来,类常量,定义类常量的关键字 const 例如 const PI=3.14159;
再来个例子
<?php
class SportObject
{
const
BOOK_TYPE=‘计算机图书‘; //声明常量,常量名前没有$符号
public $object_name;
function
setObjectName($name)
{
$this->object_name =
$name;
}
function getObjectName()
{
return
$this->object_name;
}
}
$c_book = new
SportObject();
$c_book -> setObjectName("PHP类");
echo
SportObject::BOOK_TYPE."->"; //类名和常量名之间的两个冒号称为作用域操作符
//使用这个操作符可以在不创建对象的情况下调用类的常量、变量和方法。
echo $c_book ->
getObjectName();
?>
当实例化一个对象后,经常要初始化这个对象,即对这个对象赋初始值,这时候可以采用构造方法,构造方法就是生成对象时自动执行的成员方法(它就是一个成员方法,类中的函数,只是最先运行罢了),作用就是初始化对象。
实例:
<?php
class SportObject //类名
{
public $name; //成员变量
public $height;
public $avoirdupois;
public $age;
public $sex;
public function __construct($name,$height,$avoirdupois,$age,$sex) //构造函数
{
$this->name=$name; //为成员变量赋初值
$this->height=$height;
$this->avoirdupois=$avoirdupois;
$this->age=$age;
$this->sex=$sex;
}
public function boot() //成员方式
{
if($this->height<185 and $this->avoirdupois<85)
{
return $this->name.",符合踢足球的要求!";
}
else
{
return $this->name.",不符合踢足球的要求!";
}
}
}
$sport = new SportObject(‘明日‘,‘185‘,‘80‘,‘20‘,‘男‘); //一句话就初始化完了实例sport
echo $sport->boot();
?>
析构函数:与构造函数作用相反,是在最后才执行的成员方式。
实例:
<?php
class SportObject
{
public $name;
public $height;
public $avoirdupois;
public $age;
public $sex;
public function __construct($name,$height,$avoirdupois,$age,$sex)
{
$this->name=$name;
$this->height=$height;
$this->avoirdupois=$avoirdupois;
$this->age=$age;
$this->sex=$sex;
}
public function boot()
{
if($this->height<185 and $this->avoirdupois<85)
{
return $this->name.",符合踢足球的要求!";
}
else
{
return $this->name.",不符合踢足球的要求!";
}
}
function __destruct()
{
echo "<p><b>对象被销毁,调用了析构函数。</b></p>";
}
}
$sport = new SportObject(‘明日‘,‘185‘,‘80‘,‘20‘,‘男‘);
echo $sport->boot();
?>
最后输出:
明日,不符合踢足球的要求!
对象被销毁,调用了析构函数。
继承实例:
<?php
class SportObject
{
public $name;
public
$age;
public $avoirdupois;
public $sex;
public function
__contruct($name,$age,$avoirdupois,$sex)
{
$this->name=$name;
$this->age=$age;
$this->avoirdupois=$avoirdupois;
$this->sex=$sex;
}
function
show()
{
echo ‘这句话不会显示‘;
}
}
class BeatBasketBall
extends SportObject
{
public $height;
function
__construct($name,$height)
{
$this->name=$name;
$this->height=$height;
}
function
show()
{
if($this->height>185)
{
return
$this->name.",符合打篮球的要求!";
}
else
{
return
$this->name.",不符合打篮球的要求";
}
}
}
class WeightLifting
extends SportObject
{
function
show()
{
if($this->avoirdupois<85)
{
return
$this->name.",符合举重的要求";
}
else
{
return
$this->name.",不符合举重的要求";
}
}
}
$beatbasketball = new
BeatBasketBall("科丹",‘190‘);
$weightlifting = new
WeightLifting("明日",‘185‘,‘80‘,‘20‘,‘男‘);
echo
$beatbasketball->show()."<br>";
echo
$weightlifting->show()."<br>";
?>
原文地址:http://www.cnblogs.com/elliottc/p/3759875.html