PHP面向对象(二)类属性

属性

类的变量成员叫做“属性”,或者叫“字段”、“特征”。属性声明是由关键字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

访问方式:

  1. 类内:self::属性名、类名::属性名
  2. 类外(针对公共属性):类名::属性名

实践

<?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__

类常量细节

  1. 类常量都是公开,但是不需要修饰符,不能使用修饰符
  2. 类常量必须是大写
  3. 类常量必须赋值
  4. 常量可以被继承
  5. 常量可以是基本类型和数组类型,不能是对象
  6. 常量可以在任意位置中使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值