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();
    ?>

 面向过程比面向对象简洁,但是思路没有面向对象清晰,可重复利用率低

原文地址:https://www.cnblogs.com/navyouth/p/8227817.html