php – parent :: method() – 调用非静态方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – parent :: method() – 调用非静态方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1200字,纯文字阅读大概需要2分钟。
内容图文
![php – parent :: method() – 调用非静态方法](/upload/InfoBanner/zyjiaocheng/796/9fa7e35239434610920db47fb7fbf61d.jpg)
我不理解在PHP中调用父方法的概念.
父方法不是静态的,但它是静态调用的 – 通常PHP会抛出错误/警告.
问题是,这是来自PHP的怪癖,还是它应该如何在OOP中?
以php.net为例:
<?php
class A {
function example() {
echo "I am A::example() and provide basic functionality.<br />\n";
}
}
class B extends A {
function example() {
echo "I am B::example() and provide additional functionality.<br />\n";
parent::example();
}
}
$b = new B;
// This will call B::example(), which will in turn call A::example().
$b->example();
?>
http://php.net/manual/en/keyword.parent.php
In PHP 5, calling non-static methods statically generates an E_STRICT
level warning.
http://php.net/manual/en/language.oop5.static.php
解决方法:
如果你看一下definition of static method,你会看到:
>静态方法旨在与类的所有实例相关,而不是与任何特定实例相关. – 实际上这种方法与父类的所有子项相关.
>即使尚未存在类的实例,也可以调用静态方法. – 再次,您永远不会创建父类的实例来调用该方法.
所以我们可以把这个论点作为PHP的借口.顺便说一句,在C中它以相同的方式完成.
但是还有其他语言,就像你说的那样.例如,在JAVA中,在C#中称为super.printMethod();的父方法,就像base.printMethod()一样.
因此在PHP中可能会为解析器的简单性做好准备,因为对于这样的调用parent-> printMethod(),它们需要特定的边缘情况.
内容总结
以上是互联网集市为您收集整理的php – parent :: method() – 调用非静态方法全部内容,希望文章能够帮你解决php – parent :: method() – 调用非静态方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。