为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
PHP

1、源码

<?php
/**
* Copyright(C) Iamasb
* @project : 3、workerman相关知识点
* @explain : static关键字
* @filename : 4、static关键字
* @author : Iamasb
* @date : 2019/4/27
*/
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、执行结果

https://img1.sycdn.imooc.com//5ce7b9400001313726100276.jpg

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

https://img1.sycdn.imooc.com//5ce7b94a0001753a16220600.jpg

3、总结

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


点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
PHP开发工程师
手记
粉丝
4
获赞与收藏
37

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消