用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';的形式。
本文详细解析了在PHP类中如何正确访问静态(static)和常量(const)属性,以及普通属性的访问方式。强调了在类的内部方法中,使用self::$name访问静态属性,使用$this->value访问非静态属性的规范。
730

被折叠的 条评论
为什么被折叠?



