首页 文章

php class extender和parent的construnctor

提问于
浏览
0

我上课了

class parent {
function __construct(){
global $var;
}
}

和另一堂课

class child extends parent {
function construct(){
parent :: __construct;
}
function print(){
echo $var;
}
}
$a = new child;
$a->print();

有没有办法让$ var可用于print()方法而不在 print() 内调用 global $var;

谢谢!

2 回答

  • 0

    如果将$ var定义为成员变量,则可以这样做 .

    class parent {
      public $var;
      function __construct(){
        global $var;
        $this->var = $var;
      }
    }
    
    class child extends parent {
      function construct(){
        parent :: __construct;
      }
      function print(){
        echo $this->var;
      }
    }
    
    $a = new child;
    $a->print();
    
  • 0

    不,这是不可能的,因为它只是一个全局变量,因此在父类或继承类中没有任何特殊状态 .

    但是,您可以:

    • 将父类中的实例(即:类级别)变量设置为与全局变量相同的值 . 然后,您将在子类print方法中使用继承的变量 .

    • 将全局变量作为参数传递给构造函数 . 但是,您需要修改子项(将变量传递给父项)和父项构造函数 .

相关问题