php面向对象和构造函数

拜拜、爱过 提交于 2020-03-10 12:03:01

面向对象分为类和对象:

    类:由众多对象抽象出来的东西;

    对象:一切皆对象,由类实例化出来的;

  类的定义:

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 "对象销毁了";}。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!