php中self,$this,const,static,->的使用
用php这么久了,惭愧的是,原来自己还一直没分清楚这几个关键字使用方法。
今天来总结下。
1、在类的内部方法访问已经声明为const及static的属性时,使用self::$name的形式。注意的是const属性的申明格式,const PI=3.14,而不是const $PI=3.14
1 class clss_a {
2
3 private static $name="static class_a";
4
5 const PI=3.14;
6 public $value;
7
8 public static function getName()
9 {
10 return self::$name;
11 }
12 //这种写法有误,静态方法不能访问非静态属性
13 public static function getName2()
14 {
15 return self::$value;
16 }
17 public function getPI()
18 {
19 return self::PI;
20 }
21
22
23 }
2
3 private static $name="static class_a";
4
5 const PI=3.14;
6 public $value;
7
8 public static function getName()
9 {
10 return self::$name;
11 }
12 //这种写法有误,静态方法不能访问非静态属性
13 public static function getName2()
14 {
15 return self::$value;
16 }
17 public function getPI()
18 {
19 return self::PI;
20 }
21
22
23 }
还要注意的一点是如果类的方法是static的,他所访问的属性也必须是static的。
2、在类的内部方法访问未声明为const及static的属性时,使用$this->value ='class_a';的形式。