今天闲来无事,突然有个朋友问我self和static的区别?那么好,就让我来跟大家解答一下这个问题。 self :它会调用当前类的方法;通俗来说,self就是写在哪个类里面, 实际调用的就是
今天闲来无事,突然有个朋友问我self和static的区别?那么好,就让我来跟大家解答一下这个问题。
self :它会调用当前类的方法;通俗来说,self就是写在哪个类里面, 实际调用的就是这个类的方法。
static(延迟静态绑定):在PHP5.3中,加入了一个新的特性,叫做延迟静态绑定。它可以帮我们实现多态。简单来说,延迟静态绑定意味着,当我们用static关键字调用一个继承方法时,它将在运行时绑定调用类。通俗来说,static代表使用的这个类,就是你在父类里写的static,然后被子类覆盖,使用的就是子类的方法或属性。
class Person { public static function name ($nickname) { echo $nickname; } public static function callSelf() { self::name('我是self里的nickname'); } public static function callStatic() { static::name('我是static里的nickname'); }}class Man extends Person { public static function name($nickname) { echo $nickname = '我是Man里的nickname'; }}Man::callSelf(); // 输出: 我是self里的nicknameMan::callStatic(); // 输出: 我是Man里的nickname注:如果将Man里的name注释掉,那么:Man::callStatic();将会调用父类里的name。 // 输出: 我是static里的nickname
好啦,以上就是slef和static的区别啦。如有不同理解,请多多指教。
来源地址:https://blog.csdn.net/zhouqi1427/article/details/131818663
--结束END--
本文标题: PHP中self和static的区别
本文链接: https://lsjlt.com/news/386102.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0