一、封装
目的:为了让类更加安全
方法:
1.将成员变量变为私有
2.做一个成员方法来间接访问
3.在该方法里面加限制性条件
class ren
{
private $name;
private $age;
function setname($n)
{
$this->name=$n;
}
function getname()
{
return $this->name;
}
}
$r=new ren();
$r->setname("张三");
echo $r->getname();
以上这种方法,如果成员变量数量较多的话,写起来会很麻烦,因为每个变量都要写两个方法,所以在实际操作过程中不建议使用。
class ren
{
private $name;
private $age;
魔术方法,给变量赋值
function __set($n,$v)
{
if($n=="age")
{
if($v>=18&&$v<=50)
{
$this->$n=$v;
}
}
else
{
$this->$n=$v;
}
}
魔术方法,取变量
function __get($n)
{
return $this->$n;
}
$r->__set("age",20);
$r->age = 20;
以上是运用了Php的两种魔术方法,创建变量和取得变量,这两种方法在遇到成员变量众多的情况下也可以轻松解决,不必重复两种方法。
二、继承
子类可以继承父类的一切
特点:单继承,一个子类只能有一个父类,一个父类可以有多个子类。
class ren
{
public $name;(privted只能在父类访问)
function run()
{
echo "跑步";
}
}
class china extends ren
{
重写 override
function run()
{
parent::run();调用父类run方法
echo "中国人跑步";
}
}
$c=new china();
$c->run();
三、多态(一般php的多态表现不出来)
当父类引用指向子类实例的时候,由于子类对父类的方法进行了重写,该引用在调用方法的时候表现出来的不同