计算机系统应用教程网站

网站首页 > 技术文章 正文

24、php面向对象例子-static关键字

btikc 2024-10-12 11:14:43 技术文章 8 ℃ 0 评论

1、static关键字源码

<?php

/**

* Copyright(C) Iamasb

* @project : 3、workerman相关知识点

* @explain : static关键字

* @filename : 4、static关键字

* @author : Iamasb

*/

class TestStatic

{

/**

* 静态属性

* @var string

*/

public static $param = 'param';

/**

* @var string

*/

public $param1 = 'param1';

/**

* 静态方法

* 打印属性param1

*/

public static function func1()

{

echo $this->param1,PHP_EOL;

}

/**

* 静态方法

* 打印静态属性

*/

public static function func2()

{

echo self::$param,PHP_EOL;

}

/**

* 打印静态属性param

*/

public function func3()

{

echo $this->param,PHP_EOL;

$this->func2();

}

}

$ts1 = new TestStatic();

//$ts1->func1();

echo "====打印一====",PHP_EOL;

$ts1->func2();

$ts1->func3();

$ts1->param = 'ts1';

echo "====打印二====",PHP_EOL;

$ts1->func2();

$ts1->func3();

TestStatic::$param = "hello world";

echo "====打印三====",PHP_EOL;

$ts1->func2();

$ts1->func3();

$ts2 = new TestStatic();

echo "====打印四====",PHP_EOL;

$ts2->func2();

$ts2->func3();

echo "====打印五====",PHP_EOL;

TestStatic::func2();

2、执行结果

  • 对$ts1->func1();进行注释掉,再执行

3、总结

  • static修改属性和方法的称为类静态,这里的静态是指类所有,被所有实例化对象共享
  • 静态方法中不能使用$this,这是静态方法为类所有,因此在此方法内部使用$this,则无法区分是哪个实例化对象
  • 修改静态属性,只能通过类名,如使用$this,则会被当做是该类的公开属性
  • 静态方法可以通过一个类已实例化的对象来访问
  • self代替当前运行上下文

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表