PHP面向对象
1、面向对象
类:由众多对象抽象出的东西(研究的对象共同特征抽象出来)
对象一切皆对象(研究什么,什么就是对象)由类实例化出来的
2、类的定义
<?php //类的定义 class Ren { var $code;//成员变量 人员代号 var $name;//成员变量 姓名 var $sex;//成员变量 性别 var $birthday;//成员变量 生日 } ?>
类里面所有变量或者函数都是类的成员
类里面的成员是属于对象的而不是类的(姓名代号是属于具体某个人的而不是属于人类的)
3、实例化对象
<?php //类的定义 class Ren { var $code;//成员变量 人员代号 var $name;//成员变量 姓名 var $sex;//成员变量 性别 var $birthday;//成员变量 生日 } //实例化对象 $r = new Ren();//实例化一个人 $r->code = "p001";//代号为p001的人 ->寻找Ren下面的内容 $r1 = new Ren();//实例化一个人 $r1->code = "p002" ;//代号为p002的人 var_dump($r); var_dump($r1); ?>
4、访问修饰符
public 公有的(类外也能被访问,任何地方都可以被访问){}外
protected 受保护的 (只能在类和子类内访问)
private 私有的(只能在该类使用)
<?php class Ren { public $code; protected $name; private $sex; public $birthday; } $r = new Ren(); $r->code = "p001"; $r->name = "张三";//会报 $r->sex = "男";//报错 var_dump($r) ?>
5、调用函数
<?php class Ren { public $code; public $name; public $sex; public $birthday; public function say(){ echo"说话"; } } $r = new Ren(); $r->say(); ?>
让具体某个人说话
<?php class Ren { public $code; public $name; public $sex; public $birthday; public function say(){ echo"{$this->name}说话!";//this代表该对象 } } $r = new Ren(); $r->code = "p001"; $r->name = "张三"; $r->sex = "男"; $r->say(); ?>
张三说话
5、面向对象和面向过程的区别
例:两个圆套在一起大圆半径是10小圆半径是5 求蓝色部分的面积
用面向过程:
$r=10; $r1=5; $mianji=3.14*$r*$r-3.14*$r1*$r1; echo $mianji ?>
面向对象
<?php class Yuan{ public $r; public function mianji(){ return 3.14*$this->r*$this->r; } } $y = new Yuan(); $y->r = 10; $y1 = new Yuan(); $y1->r = 5; echo $a=$y->mianji()-$y1->mianji(); ?>
面向过程比面向对象简洁,但是思路没有面向对象清晰,可重复利用率低