|
本篇文章主要分享一下关于php类中的$this,static,final,const,self这几个关键字使用方法
$this
$this表示当前实例,在类的内部方法访问未声明为const及static的属性时,使用$this->value='phpernote';的形式。常见用法如:$this->属性,$this->方法
- <?php
- /**
- * 有关人类
- */
- class Person
- {
-
- private $name='张三';
- public $sex;
- public function run(){
- return $this->name.'能跑';
- }
- public function length(){
- echo $this->run().'800米';
- }
- }
-
- $person=new Person();
- $person->length();
- ?>
复制代码
static
声明及调用静态变量如下:
- <?php
- /**
- * 示例
- */
- class Person
- {
- static $sex=1;
- public $name='张三';
-
- static function qianDao(){
- return self::$sex++;
- }
-
- static function printQianDao(){
- echo self::qianDao();
- }
-
- static function printQianDao2(){
- echo $this->qianDao();
- }
-
- static function printQianDao3(){
- echo $this->name;
- }
-
- public function printQianDao4(){
- echo $this->name;
- }
-
- }
-
- $person=new Person();
- $person->printQianDao();//输出1
- Person::printQianDao(); //输出2
- $person->printQianDao2();//报错:Using $this when not in object context
- $person->printQianDao3();//报错:Using $this when not in object context
- $person->printQianDao4();//输出“张三”;
- Person::printQianDao4(); //报错1:Non-static method Person::printQianDao4() should not be called statically,报错2:Using $this when not in object context
-
- ?>
复制代码
注意事项:
1.在静态方法内部,不能使用$this(即在静态方法内部只能调用静态成员);
2.调用静态成员的方法只能是self::方法名或者parent::方法名或者类名::方法名
3.在类的外部,调用静态方法时,可以不用实例化,直接类名::方法名
4.静态方法执行之后变量的值不会丢失,只会初始化一次,这个值对所有实例都是有效的
const
定义及调用类的常量如下:
- <?php
- /**
- * 示例
- */
- class Person
- {
- const PI=1;
- static function getPi(){
- return self::PI;
- }
- static function printPi(){
- echo self::getPi();
- }
- }
- Person::printPi();
- ?>
复制代码
注意:调用类的成员是self::PI,而不是self::$PI
self
self表示类本身,指向当前的类。通常用来访问类的静态成员、方法和常量。
|
获得 大财神卡 一张
卡片说明:曲奇饼 遇到 [老神仙离歌] 被赠与 4 铜钥匙.
卡片效果:获得 4 铜钥匙
|