到了面向对象了~~~
php部分---面向对象:定义、实例化、构造函数、析构函数;
类 − 定义了一件事物的抽象特点。类的定义包含了数据的形式以及对数据的操作。
对象 − 是类的实例。一切皆对象。由类实例化出来的。
成员变量 − 定义在类内部的变量。该变量的值对外是不可见的,但是可以通过成员函数访问
,在类被实例化为对象后,该变量即可称为对象的属性。
成员函数 − 定义在类的内部,可用于访问对象的数据。
访问修饰符
public 公有的,任何地方都可以访问,包括类的内部、该类的子类和类实例化的对象
protected 受保护的,只能在该类或该类的子类中访问
private 私有的,只能在该类中访问
类是对象的模板,所以要定义规范、合理的类结构首先应该明确类应该具有的属性和方法:
定义语法:
class 类名 { public 成员变量1;
public 成员变量2;
function 成员函数名()
{
$this->成员变量名; //(变量 $this 代表自身的对象。)
}
}
实例化:对象名=new 类名();
调用类里边的成员变量:对象名->成员变量名;
调用类里边的成员函数:对象名->成员函数名();
例题:计算两个圆之间的阴影面积
class yuan {
public $banjing;
function mianji()
{
return$this->banjing*$this->banjing*3.14;
}
}
$dayuan=new yuan();
$xiaoyuan=new yuan();
$dayuan->banjing=10;
$xiaoyuan->banjing=5;
echo$dayuan->mianji()-$xiaoyuan->mianji();
__(双下划线)开头的方法在面向对象里面成为魔术方法
PHP 构造函数(__construct)
构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。
构造函数的两大特殊:
1.写法特殊:方法名特殊
2.执行时间特殊:造对象的时候就执行
对对象里面的成员进行初始化
class yunsuan { public $a; public $b; function __construct($c,$d) //构造函数(construct)在实例化时,就开始执行 { $this->a=$c; $this->b=$d; //把参数的值赋给$a,$b } function jia() { return $this->a+$this->b; }
} $ff=new yunsuan(10,5); //构造函数在new时 开始执行 echo $ff->jia();
析构函数(__destruct)
析构函数(destructor) 与构造函数相反,当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数。
用来清理内存,当程序之行结束,来清楚用完的对象等;
class YunSuan { public $a; public $b; //构造方法 function __construct($a1,$b1) { $this->a = $a1; $this->b = $b1; } //析构方法,在对象内存释放的时候执行 function __destruct() { echo "该对象释放了"; } function Chu() { return $this->a/$this->b; }
} //造对象 $y = new YunSuan(10,5); echo $y->Chu();
先执行运算方法,然后执行析构方法