类是一类东西的结构描述,而对象则是一类东西的一个具体实例,例如汽车这个名词可以理解为汽车的总类,但这辆汽车则是一个具体的汽车对象。

类通过关键字class开头,然后是类名与花括号,在花括号中定义类的属性与方法。

//定义一个类
class Car {
    //定义属性
    public $name = '汽车';

    //定义方法
    public function getName() {
        //方法内部可以使用$this伪变量调用对象的属性或者方法
        return $this->name;
    }
}

对象通过new关键字进行实例化(即创建类的实例):

$car = new Car();
//也可以采用变量来创建
$className = 'Car';
$car = new $className();

PHP类和对象之类的属性

在类中定义的变量称之为属性,通常属性跟数据库中的字段有一定的关联,因此也可以称作“字段”。属性声明是由关键字 public,protected 或者 private 开头,后面跟一个普通的变量声明来组成。属性的变量可以设置初始化的默认值,默认值必须是常量。

访问控制的关键字代表的意义为:

public:公开的
protected:受保护的
private:私有的

class Car {
    //定义公共属性
    public $name = '汽车';

    //定义受保护的属性
    protected $corlor = '白色';

    //定义私有属性
    private $price = '100000';
}

默认都为public,外部可以访问。一般通过->对象操作符来访问对象的属性或者方法,对于静态属性则使用::双冒号进行访问。当在类成员方法内部调用的时候,可以使用$this伪变量调用当前对象的属性。

<?php
    class Car{
        public $name='汽车';
        
        protected $corlor='白色';
        
        private $price='100000';
        
    }
    $car = new Car();
    //在这里输出$car对象的name属性
    echo $car->name;
?>

PHP类和对象之定义类的方法

方法就是在类中的function,很多时候我们分不清方法与函数有什么差别,在面向过程的程序设计中function叫做函数,在面向对象中function则被称之为方法。同属性一样,类的方法也具有public,protected 以及 private 的访问控制。

<?php
    class Car {
        public function getName() {
            return '汽车';
        }
    ​}
    $car = new Car();
    echo $car->getName();
?>

使用关键字static修饰的,称之为静态方法,静态方法不需要实例化对象,可以通过类名直接调用,操作符为双冒号::。

<?php
    class Car {
        public static function getName() {
            return '汽车';
        }
    ​}
    echo Car::getName(); //结果为“汽车”
?>

PHP类和对象之构造函数和析构函数

PHP5可以在类中使用__construct()定义一个构造函数,具有构造函数的类,会在每次对象创建的时候调用该函数,因此常用来在对象创建的时候进行一些初始化工作。

<?php
    header("Content-type: text/html; charset=utf-8");
    class Car {
       function __construct() {
           print "构造函数被调用\n";
       }
    }
    $car = new Car(); //实例化的时候 会自动调用构造函数__construct,这里会输出一个字符串
?>

 

posted on 2017-05-31 14:24  Anne1991  阅读(133)  评论(0编辑  收藏  举报