属性
数据类型
四种标量类型 boolean(布尔型) integer(整型) float(浮点型) string(字符串)
三种复合类型 array(数组) object(对象) callable(回调函数)
特殊类型 null resource(资源)
静态属性
作用:所有类对象所共享
用法:权限控制符 static $params
访问方式
类内
self::属性名
类名::属性名
类外(针对你公共属性)
类名::属性名
实践
demo2.php
<?php
/**
* Desc: 静态变量
* User: zyy
* Date: 2019-12-08
* Time: 下午 23:43
*/
class Student{
public static $country;
function __construct($country)
{
self::$country = $country;//类内通过 self访问
}
public function getCountry()
{
echo Student::$country;echo "<br/>";//类内也可以通过 类名访问
}
}
$stu1 = new Student('中国');
echo Student::$country;echo "<br/>"; //类外,通过类名访问
$stu1->getCountry();
$stu2 = new Student('俄罗斯'); //修改了静态属性
echo Student::$country;echo "<br/>";
$stu1->getCountry(); //对象$stu1 的静态属性也跟着改变(类静态变量 被所有类对象 所共享)
类常量
const APP = 'this is app';
作用: 固定不变的属性,被所有对象所共享,不能用权限控制符修饰
访问方式:
类内
类名::常量
self::常量
类外
类名::常量
魔术常量
__FILE__
__DIR__
__LINE__
类常量细节
类常量都是公开,但是不需要修饰符,不能使用修饰符
类常量必须为大写
类常量必须赋值
常量可以被继承
常量可以是基本类型和数组类型,不能是对象
常量可以在任意位置中使用
自己可以模拟实践,如何证明类常量细节中的点