Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

NAO CONSIGO USAR O A FUNCAO DE QUEBRAR LINHA

insira seu código <?php

class Conta
{
    private  $cpfTitular;  
    private  $nomeTitular;
    private  $saldo = 0;


    public function quebrarlinha(string $texto)
    {
        echo $texto . PHP_EOL;
    }

Criei essa funcao publica para quebrar a linha em "Conta.php"

Quando vou em "banco.php" eu simplesmente nao consigo utiliza-lo.

echo quebrarlinha(qualquercoisa);

Ele retorna Fatal error: Uncaught Error: Call to undefined function quebrarlinha()

Apesar de eu ter definido ele la em "Conta.php"

As demais funcoes funcionam perfeitamente (sacar, depositar, definirNOME) etc...

3 respostas

CODIGO COMPLETO DO "Conta.php"

<?php



class Conta
{
    private  $cpfTitular;  
    private  $nomeTitular;
    private  $saldo = 0;


    public function quebrarlinha(string $texto)
    {
        echo $texto . PHP_EOL;
    }

    public function sacar(float $valorAsacar): void
    {
        if ($valorAsacar > $this->saldo) {
            echo "Saque Indisponivel";
            return;
        }

        $this->saldo -= $valorAsacar;

    }

    public function depositar(float $valorDepositar): void
    {

        if ($valorDepositar < 0) {
            echo "O deposito necessita ser positivo";
            return;
        }

        $this->saldo += $valorDepositar;

    }

    public function transferir(float $valorTransferir, Conta $contaDestino): void

    {
        if($valorTransferir > $this->saldo){
            echo "Saldo indisponivel";
            return;
        }

        $this->sacar($valorTransferir);
        $contaDestino->depositar($valorTransferir);
    }

    public function definirCPF(string $cpf)
    {
        return $this->cpfTitular  = $cpf;
    }

    public function definirNOME(string $nome)
    {
        return $this->nomeTitular  = $nome;
    }

    public function mostrarsaldo(): float
    {
        return $this->saldo;
    }

    public function mostrarCPF(): string
    {
        return $this->cpfTitular;
    }

    public function mostrarNOME(): string
    {
        return $this->nomeTitular;
    }


}

CODIGO COMPLETO DO banco.php

<?php


require 'src/Conta.php';

$conta1 = new Conta();
$conta2 = new Conta();

$conta1->definirCPF('107.551.057-02');
$conta1->definirNOME('Davi Vitali');
$conta1->depositar(500);
$conta1->sacar(1000);
$conta1->transferir(500, $conta2);


echo $conta1->mostrarCPF();
echo $conta1->mostrarNOME();

echo $conta2->mostrarsaldo();

echo quebrarlinha(qualquercoisa);

solução!

Oi Alysson,

Você está tentando usar o método de maneira errada...

Você só pode acessar o método pela setinha "->" e através da instância de algum objeto. Tente fazer da seguinte maneira:

$conta2->quebrarlinha('qualquercoisa');

Outros três detalhes:

1- Você não precisa do return nos seus métodos setters(definir);

2 - Visualmente você não conseguirá ver diferença no texto aplicado na sua função por que ela apenas quebra uma linha e retorna o mesmo texto. Tente evitar "echo" de dentro do método também, não vou entrar em muitos detalhes por que pode te confundir nesse inicio, mas prefira o usar o echo externamente e dentro do método você utiliza um "return" no valor que deseja ser a saída. Ficando dessa maneira:

 public function quebrarlinha(string $texto)
    {
        return $texto . PHP_EOL;
    }

// e quando for usar....

echo $conta2->quebrarlinha('qualquercoisa');

3 - Ao criar métodos em uma classe, mesmo que de cunho didático, procure sempre criar coisas que façam sentido estar na classe. Para você treinar eu sugeria, por exemplo, criar um método que retorne todas informações de maneira formatada da sua classe Conta.

Boa tarde Diego,

Muito obrigado por sanar minha duvida e me orientar com dicas. Irei estudar mais e aplicar as dicas passadas.

Obrigado.