php面向对象和构造函数

  程序分为面向爱那个过程和面向对象,不过面向过程不如面向对象那样模块化,所以设计程序一般都用面向对象。

  面向对象分为类和对象:

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

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

  类的定义:

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

posted @ 2018-01-09 10:14  23滴雨  阅读(487)  评论(0编辑  收藏  举报