类的定义:
- 变量 + 函数 = 对象
- 对象也是实现”代码复用”的手段
- 要使用对象, 就得先创建一个模板,根据这个模板,不断的创建多个对象出来,实现复用
类的声明与实例化
- 可以小写 但是要大写 遵守行业规范
- 类中变量调用时先要 new一下然后可以调用 类里面的变量
class User{
public $name='王壮';
}
$user=new User;
echo $user->name.'<br>';
类的实例化:创建对象的过程, new
- 如果不知道类名,get_class()
- echo get_class($goods);
- var_dump($goods instanceof User);//判断当前对象是不是这个类
实例化一个类
$goods = new User();
// 类的实例, 对象, 在不会引起误会的场景下, 实例与对象是同义词
var_dump($goods instanceof Goods);
// 如果不知道类名,get_class()
echo get_class($goods);
类成员: 类属性, 类方法, 类常量
1. 常规属性: 非静态属性/动态属性
- 类属性: 类中变量
- 类中成员的作用域: 访问限制
- 类属性就是有访问限制的变量
- 语法: 访问限制符 $变量标识符;
- 可以用模板字面量的形式填写 nowdow/heredoc
- 类里面的变量可以在类外面被赋值
class User{
public $name='王壮';
public $age=18;
// 可以用模板字面量的形式填写// nowdow
public $sex= <<< 'SEX'
man
SEX;
// heredoc
public $work= <<<"WORK"
php
WORK;
}
$user = new User;
echo $user->name.'<br>';
echo $user->name='李根';
2.非法属性值
- 不能用变量
- 不能用类属性/类方法
- 不能用表达式
- 不能使用函数调用
// 不能用变量
// public $age = $var;
// 不能用类属性/类方法
// public $user = $this->name;
// 不能用表达式
// public $total = $price * 10;
// 不能使用函数调用
// public $creat = time();
3. 静态属性
- 如果一个属性的值,对所有实例来说是一样的, 用类访问更方便,此时可以声明为静态的
- 调用时候 echo User::$city;
- 访问静态属性: 使用范围解析符, 双冒号::
class User
{
public static $nationality = '中国/CHINA';
}
echo User::$city;
4.抽象属性: 没有被初始化, 默认值就null
- 抽象类可以赋值
调用方法和普通类一样
class User
{
public $salary = null;
}
$user=new User;
echo $user->salary='123';