前言
本文主要
介绍了新的自(新)与新静态(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)(); / /
总结
以上就是本文的全部内容。希望本文的内容能给大家的
学习或
工作带来一定的帮助。如果有任何疑问,您可以留言交流,谢谢您的
支持。