代码之家  ›  专栏  ›  技术社区  ›  Joe Scotto

调用本身调用方法的父方法?[复制品]

  •  0
  • Joe Scotto  · 技术社区  · 6 年前

    我对oop-php有一个奇怪的问题,我孩子的方法调用父级的方法,而这些方法本身设置了属性,但似乎不起作用。

    例如:

    子班

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

    父级

    class A {
        protected function parentClassMethod() {
            echo "Something here" // This will work
            $this->_someVariable = 'someValue'; // This will not
        }
    }
    

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

    2 回复  |  直到 6 年前
        1
  •  1
  •   Remote    6 年前

    你可以用 parent 而不是 $this 但你不能打电话给 private 子级的父级中的方法。

    class A
    {
        public $someVariable = '';
        public function parentClassMethod()
        {
             echo 'Something here';
             $this->someVariable = 'Some Value';
        }
    }
    class B extends A
    {
        private function childMethod()
        {
            parent::parentClassMethod();
        }
    }
    
        2
  •  -1
  •   Naveed    6 年前

    你也可以申报 parentClassMethod() 作为 protected 而不是 private . 请看 Visibility .

    <?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();
        }
    }
    
    ?>