php学习:面向对象,创建类、对象、构造函数

//声明一个类
class Person{

    //类里面的属性
    public $userName='Clive';
    protected $age='27';   //受保护的,无法在类的外部访问(隐私属性)

    //类里面的行为:方法
    //public:共用的、默认的 ==> 可以在类的外面访问
    //protected:受保护的 ==>  只能在类的里面访问
    //private:私有的

    public function eat(){
        echo '人是要吃饭的!';
        echo $this->age;      //隐私属性,只能在类内部访问
    }
    public function run(){
        echo '人是可以跑步的!';

    }

    //通过一个魔术常量来写构造函数
    public function _construct(){
        echo '我是魔术常量书写出来的构造函数!';
    }



};


$p = new Person();
echo $p->userName;   //公共属性,可以在类外部访问

echo '<hr/>';
$p->eat();

echo '<hr/>';
$p->run();


echo '<hr/>';
echo '<hr/>';

//声明一个类
class Cat{

    //类里面的属性
    public $userName;
    public $age;

    //类里面的行为:方法

    //构造函数
//    public function Cat($userName,$age){
//        //$this 表示当前对象
//        $this->userName=$userName;
//        $this->age=$age;
//        echo '我是用5.5版本以前的方法写的构造函数!';
//    }

    //通过一个魔术常量来写构造函数(注意:魔术常量的下划线是两根)
   public function __construct($userName,$age){
         //$this 表示当前对象
          $this->userName=$userName;
          $this->age=$age;
        echo '我是魔术常量书写出来的构造函数!';
   }

    public function __destruct(){
        echo '析构函数会在对象的所有引用被删除或者显示的消失之前被调用!';
    }


};

//构造函数在创建new对象的时候调用
$c=new Cat('clibe',27);

echo '<hr/>';

echo $c->userName;
echo '<hr/>';

$c=null;
echo '<hr/>';echo '<hr/>';

//声明一个类
class Dog{
    private $useName;
    private $age;   //设置私有属性:age

    //setAge:给age设值  或者用魔术常量:_set
    public function setAge($age){
        //$this->age = 16;
        //$this->age = private $age;
        $this->age = $age;
    }

    //getAge:给age取值  或者用魔术常量:_get
    public function getAge(){
        return $this->age;
    }


    public function __set($key,$value){
        $this->useName = $value;
    }
    public function __get($key){
        return $this->useName;
    }



}

$dog = new Dog();

$dog->setAge(16);
echo $dog->getAge();

echo '<hr/>';

$dog->__set('userName','clibe' );
echo $dog->__get('userName');

猜你喜欢

转载自blog.csdn.net/qq_32584661/article/details/80511686