面向对象:又分为面向过程、面向对象
面向对象 面向过程
$a = 10; $b = 15; echo $a+$b; 面向对象 1.什么叫做对象 一切皆为对象 2.什么叫做类 由众多对象推衍的抽象 做类 class Ren 一般大写开头 { 通过变量和方法来描述人类的特征 成员变量 public $name; public $sex; 构造方法 function __construct($n) { $sex = $n; //错误 //$this关键字,在类里面代表该对象 $this->sex =$n; //正确 } 成员方法 public function Speak() { echo "正在讲话"; } } $r = new Ren("男"); 实例化对象 var_dump($r); $r1 = new Ren("女"); var_dump($r1); //var_dump($r); //$r->name = "李四"; //赋值 //echo $r->name; //取值 //var_dump($r); //$r->Speak(); //$r1 = new Ren(); //实例化对象 //$r1->name = "数据"; //var_dump($r==$r1);
访问修饰符 public:代表公有的,在任何地方都可以访问 protected:代表受保护的,只能在该类或该类的子类中访问 private:代表私有的,只能在该类中访问 构造方法,始终存在,如果不写也是存在的
例子1:两圆相交求阴影面积 面向过程: $maxr=10; $minr=5; $yymj=3.14*$maxr*$maxr-3.14*$minr*$minr; 面向对象: class Yuan { public $r; function __construct($n) { $this->r=$n; } function Mj() { return 3.14*$this->r-$this->r; } } $r1=new Yuan(10); $r2=new Yuan(5); echo $mianji = $r1->Mj()-$r2->Mj();
例子2:计算器 面向过程: $a=20; $b=10; $jia=$a+$b; $jian=$a-$b; $cheng=$a*$b; $chu=$a/$b; 面向对象: class Jisuan { public $a; public $b; function __construct($n,$m) { $this->a=$n; $this->b=$m; } function jia() { return $this->a+$this->b; } function jian() { return $this->a-$this->b; } function cheng() { return $this->a*$this->b; } function chu() { return $this->a/$this->b; } } $j=new Jisuan(20,10); echo $j->cheng();