3v4l.org

run code in 300+ PHP versions simultaneously
<?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;
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:
155.9 ms | 407 KiB | 5 Q