@ 2020-12-10T16:05:36Z <?php
class Conta
{
private $titular; //atributos ou dados.
private float $saldo;
private static $numeroDeContas = 0;
public function __construct($titular)//metodos ou ações
{
$this ->titular = $titular; // $this referencia o objeto q chama a função
$this ->saldo = 0;
self::$numeroDeContas++;
}
public function sacar(float $valorASacar): void
{
if ($valorASacar > $this->saldo) {
echo "Saldo indisponível";
return;
}
$this->saldo -= $valorASacar;
}
public function depositar(float $valorADepositar): void
{
if ($valorADepositar < 0) {
echo "Valor precisa ser positivo";
return;
}
$this->saldo += $valorADepositar;
}
public function transferir(float $valorATransferir, Conta $contaDestino): void
{
if ($valorATransferir > $this->saldo) {
echo "Saldo indisponível";
return;
}
$this->sacar($valorATransferir);
$contaDestino->transferir($valorATransferir);
}
// Métodos Recuperar.
public function recuperarSaldo(): float
{
return $this->saldo;
}
public function recuperarNomeTitular(): string
{
return $this->titular->recuperarNome();
}
public function recuperarCpfTitular(): string
{
return $this->titular->recuperarCpf();
}
//... código omitido
public static function recuperarNumeroDeContas(): int
{
return Conta::$numeroDeContas;
}
}
class Titular
{
private string $cpf;
private string $nome;
public function __construct(string $cpf, string $nome)
{
$this->cpf = $cpf;
$this->validarNomeTitular($nome);
$this->nome = $nome;
}
private function validarNomeTitular(string $nomeTitular)
{
if (strlen($nomeTitular) < 5) { // strlen = tamanho da string
echo "Nome precisa ter pelo menos 5 caracteres";
exit();
}
}
public function recuperarCpf()
{
return $this->cpf;
}
public function recuperarNome()
{
return $this->nome;
}
}
$primeiraConta = new conta(new titular('123.456.789-10','Thiago Felipe'));
$segundaConta = new conta(new titular('987.456.123-01', 'Aline Torres'));
var_dump($primeiraConta);
var_dump($segundaConta);
$primeiraConta -> depositar(1000);
$segundaConta -> depositar (3500);
echo $primeiraConta -> recuperarNomeTitular() . PHP_EOL;
echo $primeiraConta -> recuperarCpfTitular() . PHP_EOL;
echo $primeiraConta -> recuperarSaldo() . PHP_EOL;
echo $segundaConta -> recuperarSaldo() . PHP_EOL;
echo $segundaConta -> recuperarNomeTitular() . PHP_EOL;
echo $segundaConta -> recuperarCpfTitular() . PHP_EOL;
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 7.4.0 - 7.4.33 , 8.0.0 - 8.0.30 , 8.1.0 - 8.1.33 , 8.2.0 - 8.2.29 , 8.3.0 - 8.3.25 , 8.4.1 - 8.4.12 object(Conta)#1 (2) {
["titular":"Conta":private]=>
object(Titular)#2 (2) {
["cpf":"Titular":private]=>
string(14) "123.456.789-10"
["nome":"Titular":private]=>
string(13) "Thiago Felipe"
}
["saldo":"Conta":private]=>
float(0)
}
object(Conta)#3 (2) {
["titular":"Conta":private]=>
object(Titular)#4 (2) {
["cpf":"Titular":private]=>
string(14) "987.456.123-01"
["nome":"Titular":private]=>
string(12) "Aline Torres"
}
["saldo":"Conta":private]=>
float(0)
}
Thiago Felipe
123.456.789-10
1000
3500
Aline Torres
987.456.123-01
Output for 7.3.0 - 7.3.33 Parse error: syntax error, unexpected 'float' (T_STRING), expecting function (T_FUNCTION) or const (T_CONST) in /in/OuaDT on line 6
Process exited with code 255 . preferences:dark mode live preview ace vim emacs key bindings
155.9 ms | 407 KiB | 5 Q