php中self与static有什么区别,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。通过一些示例,我们可以很容易看出self和static的区别。假定我们有class Car – 它有两个方法,model和getModel。注意,这里我们使用了关键字self。关键字self使得我们调用了class Car的getModel方法,输出了文本“I am a Car!”。下面我们添加一个新的类,class Mercedes, 它继承自class Car,代码如下:当我们调用Mercedes::model()时,猜猜结果是什么?这是为什么呢?关键字“self”的工作原理是:它会调用当前类(current class)的方法。因为model方法只在class Car中定义的,所以对它来说当前类就是class Car。model中的self::getModel(),调用的自然也就是class Car中的getModel方法。这个行为似乎不是我们想要的,它不符合面向对象的设计原则。如何解决呢?可以使用关键字static。在PHP5.3中,加入了一个新的特性,叫做延迟静态绑定。它可以帮我们实现多态,解决上面的问题。简单来说,延迟静态绑定意味着,当我们用static关键字调用一个继承方法时,它将在运行时绑定调用类(calling class)。在上面的例子中,如果我们使用延迟静态绑定(static),意味当我们调用“Mercedes::model();”时,class Mercedes中的getModel方法将会被调用。因为Mercedes是我们的调用类。注意,php 5.3之前的版本无法使用延迟静态绑定。如果尝试在php 5.3以下的版本运行上面的例子,将会报错。现在我们将例子中的self用static替换,可以看到,两者的区别在于:self引用的是当前类(current class)而static允许 香港云主机函数调用在运行时绑定调用类(calling class)。看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注开发云行业资讯频道,感谢您对开发云的支持。
这篇“win7系统还原打不开如何修复”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“win7系统还原打不开如何修复”文章吧。1、我们首先在桌面按下…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。