PHP面向对象中新的自()(新)与静态()的差异性分析

PHP面向对象中新的自()(新)与静态()的差异性分析
前言

本文主要介绍了新的自(新)与新静态(PHP)在面向对象中的区别。这两种方法有什么区别下面的话不多说,大家一起来看看详细的介绍。

区别如下:

首先,结论是,在PHP中,自我指向定义当前调用方法的类,以及指向调用当前静态方法的类的静态点。

然后用一个例子来证明上述结果。
班上的一个
{
公共静态_a美元= ' ';

公共静态函数echoproperty()
{
回声自::_a php_eol美元;
}
}

B类扩展
{
公共静态_a美元= ' B ';
}

$ obj =新的B();
B::echoproperty(A类); / /输出
这是因为自我的静态参考:或__class__当前类取决于被调用的方法中定义的类、方法和echoproperty以上课改:
班上的一个
{
公共静态_a美元= ' ';

公共静态函数echoproperty()
{
回波静态::_a php_eol美元;
}
}
/ /呼叫B:再次:echoproperty将output'class B
为了避免看到上面的第一个例子重写父类的子类的静态属性,使用静态属性的方法的继承还是访问父类,PHP5.3增加了一个新的语法:后期静态绑定(后期静态绑定),使用static关键字替换这个自我,静get_called_class()将返回一类,即类调用静态方法,访问静态方法的关键是有效的。

下面的示例更好地说明了新的自()和新静态(后者使用PHP后期静态绑定指向调用方法的当前类)之间的区别。
班上的一个
{
公共静态函数get_self()
{
返回新的自我();
}

公共静态函数get_static()
{
返回新静态();
}
}

类B扩展{ }

回声get_class(B:get_self)(); / /
回声get_class(B:get_static)(); / / B
回声get_class(::get_self)(); / /
回声get_class(::get_static)(); / /
总结

以上就是本文的全部内容。希望本文的内容能给大家的学习工作带来一定的帮助。如果有任何疑问,您可以留言交流,谢谢您的支持
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部