面向对象分为类和对象:
类:由众多对象抽象出来的东西;
对象:一切皆对象,由类实例化出来的;
类的定义:
class Ren{ var $code; //成员变量 var $name; //姓名 var $sex; //性别 var $birthday; //生日 public function say(){ echo "{$this->name}说话!"; } }
其中类名的首字母大写,$this写在类里面代表该对象(谁调用代表谁);
实例化对象(object代表对象):
$r = new Ren(); $r->name = "张三"; $r->code = "p001"; $r->say();
类里面所有的变量或函数都称作类的成员;
访问修饰符:
public:公有的,任何地方都可以使用(类里类外都可用);
protected:受保护的,在外界访问不到,能在该类和子类中访问到;
private:私有的,只能在该类访问;
(之前定义用的var可变为访问修饰符);
类里面的成员是属于对象的;
面向对象和面向过程的区别:
1.面向过程较为方便;
2.面向对象结构更清晰;
3.面向对象后期改动过更方便。
面向过程做法:
$r1 = 10; $r2 = 5; $mj = 3.14*$r1*$r1-3.14*$r2*$r2; echo $mj;
面向对象做法:
class Yuan{ public $r; //半径 //获取面积 public function mianji(){ return 3.14*$this->r*$this->r; } } $y1 = new Yuan(); $y1->r = 10; $y2 = new Yuan(); $y2->r = 5; $mjm = $y1->mianji()-$y2->mianji(); echo $mjm;
构造函数一般用于初始一些参数。
特点为:1.写法特殊; 2.执行特殊。
1.写法特殊:
写法一:
public function Ren(){ } 写法二:
public function __construct($sex){ $this->sex = $sex; }
这里用到的双下划线__,可自动调用;
2.执行特殊:
在$r = new Ren();时自动执行;
析构函数:对象销毁前调用;
public function __destruct(){echo "对象销毁了";}。
来源:https://www.cnblogs.com/rose1324/p/8644357.html