首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用自己调用方法的父方法?

问调用自己调用方法的父方法?
EN

Stack Overflow用户
提问于 2019-01-20 04:18:54
回答 2查看 50关注 0票数 0

对于OOP PHP,我遇到了一个奇怪的问题,我的子程序上的方法--调用在其上设置属性的父方法--似乎不起作用。

例如:

子类

代码语言:javascript
复制
class B extends A {
    private function childMethod() {
        // Some code
        $this->parentClassMethod()
    }
}

父类

代码语言:javascript
复制
class A {
    protected function parentClassMethod() {
        echo "Something here" // This will work
        $this->_someVariable = 'someValue'; // This will not
    }
}

我觉得这可能是错误的做法,因为它不起作用,所以任何帮助都是很好的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-20 04:49:56

您可以使用parent而不是$this来实现这一点,但是不能从子节点调用父级中的private方法。

代码语言:javascript
复制
class A
{
    public $someVariable = '';
    public function parentClassMethod()
    {
         echo 'Something here';
         $this->someVariable = 'Some Value';
    }
}
class B extends A
{
    private function childMethod()
    {
        parent::parentClassMethod();
    }
}
票数 1
EN

Stack Overflow用户

发布于 2019-01-20 05:06:25

您还可以将parentClassMethod()声明为protected而不是private。请看可见性。

代码语言:javascript
复制
<?php

class A {

    protected $_someVariable;

    protected function parentClassMethod() {
        echo "Something here";
        $this->_someVariable = 'somSomething is wrongue';
        echo $this->_someVariable;
    }
}

class B extends A {
    private function childMethod() {
        // Some code
        $this->parentClassMethod();
    }
}

?>
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54273535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档