PHP 类属性

在类中定义的变量称之为属性,常见的属性声明是由关键字public,protected,var或private开头,后面跟一个普通的变量声来组成。还有一些成员属性包括,静态static,常量const。

  • public:默认值,表示全局的,类内部外部子类都可以访问。
  • protected:表示受保护的,只有本类或子类或父类中可以访问,不允许外部调用。
  • private:表示私有的,只有本类内部可以使用。
  • Var:php 5 版本中会认为这个成员属性为public类型的属性。
  • Static: 
  1. 静态的属性;
  2. 用static修饰的成员属性可以被同一个类的所有对象共享;
  3. 静态的数据是在类第一次被加载的时候就存在了内存中的数据段中(初始化静态段);
  4. 类中使用self::成员属性名;
  5. 类外  类名::成员属性名;
  • Const:   

1)类中常量属性,在类中声明常量必须使用const;

2)类中使用  self::成员属性名;

3)类外使用  类名::成员属性名;

注意:属性中的变量可以初始化,但是初始化的值必须是常数,这里的常数是指php脚本在编译阶段时就为常数,而不是在编译阶段之后在运行阶段运算出的常数。例如,不能包含任何运算符,不能是任何变量,不能是一个函数等。

成员属性的调用方式:在类的成员方法里面,可以通过 $this->property(property是属性名字)这种方式来访问类的属性、 方法。但是要访问类的静态属性或者在静态方法里面却不能使用,而是使用 self::$property。 在类的非静态方法里面可以使用伪变量 $this,这个伪变量是调用该方法的实例化对象引用。
例1:

class Car{
//定义公共属性

public $name="汽车";

//定义受保护的属性

protected $color="白色";

//定义私有属性

private $price="10000";

}

$aCar=new Car();

echo $aCar->name; //调用对象的属性
echo $aCar->color; //错误!受保护的属性不允许外部调用
echo $aCar->price; //错误!私有属性不允许外部调用

受保护的属性和私有属性不允许外部调用,在类的成员方法内部是可以调用的。

可将例1修改为如下例2:

class Car{
    //定义公共属性
    public $name="汽车";
    //定义受保护的属性
    protected $speed="100";
    //定义私有属性
    private $price="12";
    
    function getPrice(){
        return $this->price;
    }
}

echo $aCar->getPrice();

可以过此方法访问类内部的私有属性或受保护的属性。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值