对于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
}
}我觉得这可能是错误的做法,因为它不起作用,所以任何帮助都是很好的。
发布于 2019-01-20 04:49:56
您可以使用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();
}
}发布于 2019-01-20 05:06:25
您还可以将parentClassMethod()声明为protected而不是private。请看可见性。
<?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();
}
}
?>https://stackoverflow.com/questions/54273535
复制相似问题