属性
类的变量成员叫做“属性”,或者叫“字段”、“特征”。属性声明是由关键字public、protected或private开头,然后跟一个普通的变量声明来组成。属性中的变量可以初始化,但是初始化的值必须是常数,常数是指PHP脚本在编译阶段时就可以得到其值,而不依赖于运行时的信息才能求值。
注:为了向后兼容PHP4、PHP5声明属性依然可以直接使用关键字var来替代public、protected和private。使用var会默认为public。
在类的成员方法中,可以通过伪变量($this)和对象运算符(->)来访问非静态变量,静态属性可以通过范围解析操作符(::)来访问,self::property或$this::property。
数据类型
1、四种标量类型 Boolean(布尔型)、Integer(整型)、Float(浮点型)、String(字符串)
2、三种复合类型 Array(数组)、Object(对象) 、Callback(回调函数)
3、特殊类型 null、resource(资源)
静态属性
作用:所有类对象所共享
用法:权限控制符 static $params
访问方式:
- 类内:self::属性名、类名::属性名
- 类外(针对公共属性):类名::属性名
实践
<?php
class Student{
public static $country;
function __construct($country)
{
self::$country = $country; //类内通过self访问
}
public function getCountry()
{
echo Student::$country; //类内也可以通过类名访问
}
}
$stu = new Student('中国');
echo Student::$country; //类外,通过类名访问
$stu->getCountry();
$stu2 = new Student('俄罗斯'); //修改了静态属性
echo Student::$country;
$stu->getCountry(); //对象$stu的静态属性也跟着改变(类静态变量被所有类对象所共享)
类常量
const APP = 'this is app';
作用:固定不变的属性,被所有对象所共享,不能用权限控制修饰符
访问方式
- 类内
- self::常量
- 类名::常量
- 类外(针对公共属性)
- 类名::常量
魔术常量
__FILE__
__DIR__
__LINE__
类常量细节
- 类常量都是公开,但是不需要修饰符,不能使用修饰符
- 类常量必须是大写
- 类常量必须赋值
- 常量可以被继承
- 常量可以是基本类型和数组类型,不能是对象
- 常量可以在任意位置中使用