static关键字

用途:static 关键字来定义静态方法和属性。static 也可用于定义静态变量以及后期静态绑定

1 notice:instance可以调用静态方法而不能调用静态属性.

所谓的instance调用是说用->的方式调用
在instance中如何调用其静态属性?

class bartest
{
    static $bar = 'bar';
    static function barbar()
    {
        echo 'barbar';
    }
}

Route::get('/test', function () {
    $bartest = new bartest();
    echo $bartest->bar;// Accessing static property bartest::$bar as non static
    echo $bartest::$bar;// bar
    echo $bartest::bar;// ubdefined class constant 'bar'
    $bartest->barbar();// barbar
});

实例(instance)里如何调用静态属性? instance::$pro

2 静态变量

class bartest
{
    function barbar()
    {
        static $var = 1;
        echo $var;
        $var++;
    }
}
Route::get('/test', function () {
$new = new bartest();
$new->barbar();
$new->barbar();
$new->barbar();
$new->barbar();
});

这样我们能获得1234.由此可知静态变量定义后是不受<code> static $var = 1;</code>影响的,而能hold住值,得到累加的效果,可用于递归.

3 后期静态绑定(self和static)

用于在继承范围内引用静态调用的类
如果父类子类都有一个叫func()的方法,父类中用self::func()和static::func()有什么区别呢?
self和static区别在于:子类继承后调用的self::func()执行的是父类的func()而static::func()绕过继承关系(虽然父类也有这个方法)调用的是子类的func()

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,107评论 19 139
  • Java中的static关键字解析 本文转子博客园,单击此处阅读原文 static关键字是很多朋友在编写代码和阅读...
    简单应用阅读 3,627评论 1 7
  • 作者:海子原文地址:http://www.cnblogs.com/dolphin0520/ static关键字是很...
    IT程序狮阅读 4,960评论 0 16
  • 文章大纲:1.为什么static会有这样的效果?2.static的使用3.static误区4.static面试题 ...
    柠檬乌冬面阅读 11,132评论 3 43
  • 一月的厦门,阳光照耀下总是那么温暖。今天,或许又被情侣们当做一个纪念日过了。201413,爱你一世一生?可对我这样...
    80后向前冲博客阅读 2,890评论 0 1

友情链接更多精彩内容