类,是对一类事物的抽象描述。
所谓抽象描述,就是将这一类事物所共有的属性特征(成员属性)和行为方法(成员方法)抽取出来。
面向对象的特点:封装性、继承性、多态性。
(1)声明类
- class 类名{}
(2)声明成员属性
- 声明成员属性:public $name;
- 声明成员方法:public function introduce(){}
(3)实例化类对象
- $对象名 = new 类名([参数1, 参数2, ...]);
(4)访问公有成员属性
- $对象名->成员属性名
(5)调用公有成员方法
- $对象名->成员方法名([参数1, 参数2, ...]);
(6)$this
- $this->成员属性/成员方法;
- 在对象的每个成员方法中都会存在一个特殊的对象引用“$this”,它代表当前对象,用于完成对象内部成员之间的访问。
//定义类
class User{
//成员属性
public $name;//公有成员属性,在类外可以直接访问
//成员方法
public function introduce(){
echo "大家好,我是{$this->name}";
}
}
//实例化User类对象
$user = new $User;
//访问公有成员属性
$user->name
//调用公有成员方法
$user->introduce()
(1)声明静态成员
- 声明静态属性:public static $name;
- 声明静态方法:public static function alertGo(){}
(2)访问静态成员
- 类内访问静态属性
- 类外访问静态属性
- 类外访问静态方法
<?php
class tool
{
public static $info='静态属性';
public static function getStaticInfo(){
//类内访问静态属性。方式一:使用“类名::静态属性名”
return tool::$info;
//类内访问静态属性。方式二:使用“self::静态属性名”
return self::$info;
//类内访问静态属性。方式三:使用“static::静态属性名”(PHP5.3以后)
return static::$info;
}
}
//类外访问静态属性。类名::静态属性名
echo tool::$info;
//类外访问静态方法。类名::静态属性方法
tool::getStaticInfo();
(1)构造方法
- 构造方法是类中的一个特殊方法。当使用 new 操作符创建一个类的实例时,构造方法将会自动调用,其名称必须是 __construct() 。
- 在一个类中只能声明一个构造方法,而且只有在每次创建对象的时候都会去调用一次构造方法,不能主动的调用这个方法。通常用它执行一些有用的初始化任务。该方法无返回值。
(2)析构方法
- 析构方法不能带有任何参数,其名称必须是 __destruct() 。
<?php
class User{
private $name;
private $age;
//构造方法
function __construct($name,$age) {
$this->name=$name;
$this->age=$age;
}
function introduce() {
echo "顾飞你好,我是{$this->name},今年{$this->age}岁。要我做你的男朋友吗?。<br/>";
}
//析构方法
function __destruct()
{
echo "再见".$this->name;
}
}
$user = new User("蒋丞",18);
$user->introduce();
?>
/*
运行结果:
顾飞你好,我是蒋丞,今年18岁。要我做你的男朋友吗?
再见蒋丞
*/
(1)类常量
- const 类常量名 = '常量值';
(2)访问修饰符
- public:公有修饰符。类内部、类外部、该类子类可访问。(皆可)
- private:私有修饰符。类内部可访问,类外部、该类子类不可访问。(内部可)
- protected:保护修饰符。类内部、该类子类可访问,类外部不可访问。(内部、子类可)