<?php
abstract class A
{
public function __construct() {}
abstract protected function listOfValues();
public function sum() {
}
}
class new_B extends A {
public $one = 1;
public $two = 2;
public $three = 3;
public $four = 4;
public function __construct() {
parent::__construct();
}
protected function listOfValues() {
$this->one,
$this->two,
$this->three,
$this->four
);
}
}
class new_C extends A {
public $one = 1;
public $two = 2;
public function __construct() {
parent::__construct();
}
protected function listOfValues() {
$this->one,
$this->two
);
}
}
$b = new new_B();
echo $b->sum();
echo "\n";
$c = new new_C();
echo $c->sum();
PD9waHAKYWJzdHJhY3QgY2xhc3MgQQp7CiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7fQoKICAgIGFic3RyYWN0IHByb3RlY3RlZCBmdW5jdGlvbiBsaXN0T2ZWYWx1ZXMoKTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gc3VtKCkgewogICAgICAgIHJldHVybiBhcnJheV9zdW0oJHRoaXMtPmxpc3RPZlZhbHVlcygpKTsKICAgIH0KfQoKY2xhc3MgbmV3X0IgZXh0ZW5kcyBBIHsKICAgIHB1YmxpYyAkb25lID0gMTsKICAgIHB1YmxpYyAkdHdvID0gMjsKICAgIHB1YmxpYyAkdGhyZWUgPSAzOwogICAgcHVibGljICRmb3VyID0gNDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7CiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgpOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBsaXN0T2ZWYWx1ZXMoKSB7CiAgICAgICAgcmV0dXJuIGFycmF5KAogICAgICAgICAgICAkdGhpcy0+b25lLAogICAgICAgICAgICAkdGhpcy0+dHdvLAogICAgICAgICAgICAkdGhpcy0+dGhyZWUsCiAgICAgICAgICAgICR0aGlzLT5mb3VyCiAgICAgICAgKTsKICAgIH0KfQpjbGFzcyBuZXdfQyBleHRlbmRzIEEgewogICAgcHVibGljICRvbmUgPSAxOwogICAgcHVibGljICR0d28gPSAyOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHsKICAgICAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCk7CiAgICB9CiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gbGlzdE9mVmFsdWVzKCkgewogICAgICAgIHJldHVybiBhcnJheSgKICAgICAgICAgICAgJHRoaXMtPm9uZSwKICAgICAgICAgICAgJHRoaXMtPnR3bwogICAgICAgICk7CiAgICB9Cn0KCiRiID0gbmV3IG5ld19CKCk7CmVjaG8gJGItPnN1bSgpOwplY2hvICJcbiI7CiRjID0gbmV3IG5ld19DKCk7CmVjaG8gJGMtPnN1bSgpOw==