self不能用于访问类自身的属性这句话该怎么理解???

来源:4-5 数据访问-PHP面向对象编程

大雄谁谁谁

2014-11-25 00:14

self不能用于访问类自身的属性这句话该怎么理解???

1 <?php

  2 class Child{

  3     public static $value='static value';

  4     public function test(){

  5         echo self::$value;

  6     } 

  7 }

  8 $obj= new Child();

  9 $obj->test();

 10 ?>

我写了小的程序试了下 ,$value作为类Child的属性,完全可以输出 static value    


写回答 关注

5回答

  • 慕尼黑5763311
    2015-01-14 16:46:12
    已采纳

    self可以用于输出自身类的静态属性,不能输出自身类的非静态属性。你输出的$value是静态属性,如果把static去掉,就不能用self来输出了

    大雄谁谁谁

    还真是这样,你厉害!

    2015-01-20 21:52:27

    共 1 条回复 >

  • pocheung
    2018-01-03 21:42:05

    其实讲解的老师表达的意思应该是“自身的非静态属性”。

    注意区分this self static parent

    this self static用于类自身数据访问,parent用于父类数据访问

    对于属性,this可以访问非静态属性,self static parent用于静态属性。

    对于方法,this self parent可以访问静态、非静态方法,static可以访问静态方法。

    $this->   属性[动] + 方法[静/动];
    self::    属性[静] + 方法[静/动];
    parent::  属性[静] + 方法[静/动];
    static::  属性[静] + 方法[静];


  • 随便起哟个
    2016-04-11 11:25:16

    我也是对这句话理解有问题.

  • 扣子and
    2016-01-22 11:13:18

    应该再加一个 this伪变量作为对比 就比较容易理解了, this用于访问自身非静态属性 self用户访问静态属性

  • 柳树
    2014-12-17 00:14:31

    对于这句话,理解不能。

PHP面向对象编程

从容应对面试官的知识宝典,带你握面向对象的最重要的核心能力

70154 学习 · 361 问题

查看课程

相似问题