1、创建一个和多个对象 次使用 new 函数 ,进行对类的实例化
2、对象中的$this关键字 $this关键字是用来访问当前对象中的对象属性和对象方法的系统变量
3、初始化对象 __construct()
- 原PHP4中我们需要建立一个 与类名称相同的一个对象方法
class MyPc{ function MyPC ( ) { 初始化操作 } }
-
在PHP5中继承了PHP4但为了更 好的针对面向对象开发有了固定函数
class MyPc{ function __construct() { 初始化操作 } }
4、析构函数 __destruct() 能够在对象释放时自动被调用的方法被称为析构函数
PHP4支持析构函数,通过登录在PHP运行终止时用 register_shutdown_function()调用的函数,只有类似的实行方法。 PHP5正式支持析构函数,能够在类中指定对象释放时的动作。
当对象内部的操作执行完毕的时候, __destruct()被调用, 然后对象所使用的内存被释放出来。
规则:后进先出
class MyPc {
……
function __destruct() {
……
}
}
<?php
class myPc
{
public $name;
var $price;
function vod()
{
return $this->name."播放电影";
}
function game()
{
return $this->vod()."玩游戏";
}
function intenet()
{
return "上网";
}
}
$pc1=new myPc();
$pc2=new myPc();
$pc1->name="家用电脑";
$pc2->name="公司电脑";
echo $pc1->vod()."<br />";
echo $pc2->game();
<?php
class myPc
{
public $name;
var $price;
//构造函数
function __construct($name="",$price="")
{
$this->name=$name;
$this->price=$price;
}
function vod()
{
return $this->name.$this->price.":播放电影";
}
function game()
{
return $this->vod().$this->price."、玩游戏";
}
function intenet()
{
return "上网";
}
//析构函数 后进先出
function __destruct()
{
echo "<br />======".$this->name."<br />";
}
}
$pc1=new myPc("家用电脑1","台式机");
$pc2=new myPc("公司电脑2","笔记本");
echo $pc1->vod()."<br />";
//echo $pc1=null;
echo $pc2->game();
?>
二、封装是把一些相关的属性和行为隐藏起来,从而得到保护和安全
封装关键字
public 表示全局,类内部外部子类都可以访问;
protected表示受保护的,只有本类或子类或父类中可以访问;
private表示私有的,只有本类内部可以使用;
<?php
class myPc
{
public $name;
function __construct($name="")
{
return $this->name=$name;
}
function power()
{
return $this->name."打不开电源,正在开机......";
}
}
$pc1=new myPc("我的电脑");
echo $pc1->power();
?>
<?php
class myPc
{
private $name;
function __construct($name="")
{
return $this->name=$name;
}
private function power()
{
return $this->name."打不开电源,正在开机......";
}
function ok()
{
return $this->power()."开机成功!!!";
}
}
$pc1=new myPc("我的电脑");
echo $pc1->ok();
?>
三、封装相关函数:__set() , __get()
__get() 取得当前类中封装过属性或方法并转换成共有属性
<?php
class myPc
{
private $name;
function __construct($name="")
{
return $this->name=$name;
}
function __get($name)
{
return $this->name;
}
private function power()
{
return $this->name."打不开电源,正在开机......";
}
function ok()
{
return $this->power()."开机成功!!!";
}
}
$pc1=new myPc("我的电脑");
echo $pc1->ok();
echo $pc1->name;
?>
__set() 取得当前类中封装过私有属性或者方法重新执行或赋值操作 __set($Name,$Value)
<?php
class myPc
{
private $name;
function __construct($name="")
{
return $this->name=$name;
}
function __get($name)
{
return $this->name;
}
function __set($n,$v)
{
$this->$n=$v;
}
private function power()
{
return $this->name."打不开电源,正在开机......";
}
function ok()
{
return $this->power()."开机成功!!!";
}
}
$pc1=new myPc("我的电脑");
$pc1->name="11";
echo $pc1->ok();
echo $pc1->name;
?>
四、1、继承关键字 :extends
PHP类的继承,我们可以理解成共享被继承类的内容。PHP中使用extends单一继 承的方法,请切忌!(非C++多继承)被继承的类我们叫做父类(基类)继承者成为 子类(派生类)
基类名 :: 方法名称
<?php
class base1
{
function dayin()
{
return "root print <br />";
}
}
class base2 extends base1
{
function dayin()
{
return base1::dayin()."soot print <br />";
}
}
$p=new base2();
echo $p->dayin();
?>