PHP面向对象基础

【前言】

   本文总结下面向对象的基础知识点,大概有以下几个

   ①类的声明;②属性的声明;③方法的声明;④对类进行实例化出一个对象;⑤this伪变量

【主体】

<?php
    //对象的声明,将函数放到对象里
    class oneclass{
        //方法
        function one(){
            echo "666";
        }
    }
    //实例化对象
    $class =  new oneclass();
    // 函数调用
    $class -> one();
?>

(1)属性和方法

将变量赋值放到类中,便成为了属性;将函数放到类里,便成了方法

属性和方法的调用:

<?php
    //放到对象里
    class oneclass{
        public $name = '我是属性';
        function one(){echo "我是方法";}
    }
    //实例化对象
    $class =  new oneclass();
    // 方法调用
    $class -> one();
    //属性调用
    echo $class->name;//调用属性时可以不加$
?>

 

注意:方法和属性加到类里时前面要加入权限声明,否则默认public

 

(2)类的声明

语法:class 类名{...}

注意:类名不区分大小写,但是Linux下区分,所以要保持一致。且命名采用驼峰法,一般首字母大写

<?php
    //类的声明
    class person{
        //属性声明
        public $name = 'wang';
        //方法声明
        public function man(){
            echo "1111";
        }
    }
    //调用类的话,要先new一个对象,且实例化时不区分大小写,但在Linux下严格区分大小写,
     //所以要避免不一致的情况。命名时用驼峰法
    $person = new PERSON();
    $person -> man();
    echo $person->name;
?>

 

 

(3)属性赋值的变化

属性不能赋值表达式?

5.6版本开始支持表达式,例如public $rand = 1+1;

 

(4)类与对象关系

类是同类事物共同特点的抽象描述;而对象是以类作为模板,形成的具体实例

所以当new + 类名时,便成为new一个对象,即实例化对象

<?php
    //类的声明
    class person{
        //属性声明
        public $name = 'tony';
        //方法声明
        public function man(){
            echo "1111";
        }
    }
    //实例化一个对象,赋值给变量
    //new类名时,内存便会产生一个对象,开辟新空间存放属性和方法名
    $person = new PERSON();
    $person1 = new PERSON();
    echo $person->name;
    $person1 ->name = 'tony1';
    echo $person1->name;
?>

 

注意:

①这里改变的属性值不是类里的属性值,而是开辟出的新空间的值;

②开辟的新空间只存放属性和属性值,至于方法只存放方法名,不存放函数

 

(5)this

$this是伪变量,谁实例化对象就是谁。简单理解谁调用就是谁

<?php
    class Person{
        public $name = 'tony';
        public $goods = 'dogs';
        public function buy(){
            echo "拍电影吧".$this->name;
        } 
    }
    $person = new Person();
    //调用new出来的对象中的方法,所以this指的是new出来的对象。而不是类本身
    $person -> buy();
?>

 

.

猜你喜欢

转载自570109268.iteye.com/blog/2414477