<?php
class Classe {
function __construct($calculaEu, $fazOqComEle) {
$this->$fazOqComEle($calculaEu);
}
public function meSomaAiMano($meCalcula) {
$this->fuiCalculado = $meCalcula + $meCalcula;
}
public function meMultiplicaAiMano($meCalcula) {
$this->fuiCalculado = ($meCalcula * $meCalcula);
}
public function escreveAe() {
return $this->fuiCalculado;
}
}
class classeExtendida extends Classe {
public function __construct($meCalculaAiTambem,$fazoQueComEle) {
parent::__construct($meCalculaAiTambem,$fazoQueComEle);
}
}
$classe = new Classe(1, 'meSomaAiMano');
echo $classe->fuiCalculado;
echo '<br>';
$classeExtendida = new classeExtendida(3, 'meMultiplicaAiMano');
echo $classeExtendida->fuiCalculado;
PD9waHAKCmNsYXNzIENsYXNzZSB7CgogICAgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGNhbGN1bGFFdSwgJGZhek9xQ29tRWxlKSB7CiAgICAgICAgJHRoaXMtPiRmYXpPcUNvbUVsZSgkY2FsY3VsYUV1KTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gbWVTb21hQWlNYW5vKCRtZUNhbGN1bGEpIHsKICAgICAgICAkdGhpcy0+ZnVpQ2FsY3VsYWRvID0gJG1lQ2FsY3VsYSArICRtZUNhbGN1bGE7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIG1lTXVsdGlwbGljYUFpTWFubygkbWVDYWxjdWxhKSB7CiAgICAgICAgJHRoaXMtPmZ1aUNhbGN1bGFkbyA9ICgkbWVDYWxjdWxhICogJG1lQ2FsY3VsYSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGVzY3JldmVBZSgpIHsKICAgICAgICByZXR1cm4gJHRoaXMtPmZ1aUNhbGN1bGFkbzsKICAgIH0KCn0KCmNsYXNzIGNsYXNzZUV4dGVuZGlkYSBleHRlbmRzIENsYXNzZSB7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRtZUNhbGN1bGFBaVRhbWJlbSwkZmF6b1F1ZUNvbUVsZSkgewogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJG1lQ2FsY3VsYUFpVGFtYmVtLCRmYXpvUXVlQ29tRWxlKTsKICAgIH0KCn0KCiRjbGFzc2UgPSBuZXcgQ2xhc3NlKDEsICdtZVNvbWFBaU1hbm8nKTsKZWNobyAkY2xhc3NlLT5mdWlDYWxjdWxhZG87CgplY2hvICc8YnI+JzsKCiRjbGFzc2VFeHRlbmRpZGEgPSBuZXcgY2xhc3NlRXh0ZW5kaWRhKDMsICdtZU11bHRpcGxpY2FBaU1hbm8nKTsKZWNobyAkY2xhc3NlRXh0ZW5kaWRhLT5mdWlDYWxjdWxhZG87Cg==