Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro na Execução Warning

Olá, queria saber o poder que desses erros, do dois Warning , e como faz para retira eles da tela, por que acaba incomodando. Estou deixando a baixo o código!

Warning: The use statement with non-compound name 'validacao' has no effect in C:\Users\Bruno\Alura\Tratamento\index.php on line 10 *

Warning: The use statement with non-compound name 'ContaCorrente' has no effect in C:\Users\Bruno\Alura\Tratamento\index.php on line 11 *

--------------------------------------------INDEX--------------------------------------


<?php

ini_set('display_errors',1);
error_reporting(E_ALL);
header('Content-Type: text/html; charset=utf8');


include "autoload.php"; 
use validacao;
use ContaCorrente;


$contaJoao = new ContaCorrente("Joao", "1212", "343477-9", 2000.09);
$contaMaria = new ContaCorrente("Maria", "1212", "343423-9", 6000.57);
$contaJose = new ContaCorrente("Jose", "13312", "34233423-9", 60030.57);
$contaFernanda = new ContaCorrente("Fernanda", "13312", "13423423-9", 60030.57);
$contaBernardo = new ContaCorrente("Bernardo", "13312", "23423423-9", 60030.57);
$contaFelipe = new ContaCorrente("Felipe", "13312", "33423423-9", 60030.57);
$contaLucas = new ContaCorrente("Lucas", "13312", "43423423-9", 60030.57);

echo "<br>";

echo "Total de contas: ". ContaCorrente::$totalDeContas;

echo "<br>";

echo "taxa: ". ContaCorrente::$taxaOperacao;

echo "<br>";


echo "<h1>Contas Correntes</h1>";

echo "<h2>Conta Corrente: Titula: " .  $contaJoao->getTitular()."</h2>";

echo "<pre>";
var_dump($contaJoao);
echo "</pre>";




try {

    $contaJoao->transferir(2300, $contaMaria);

} catch(\InvalidArgumentException $error) {

    echo "Invalid Argument ";
    echo $error->getMessage();

} catch(\exception\SaldoInsuficienteException $error) {

    $contaJoao->totalSaquesNaoPermitidos ++;

    echo "Capturando Exception ";
    echo $error->getMessage();
} catch(\Exception $error) {
    echo "Exception ";
    echo $error->getMessage();

}



echo "<pre>";
var_dump($contaJoao);
echo "</pre>";

---------------------------------------ContaCorrente----------------------------------

<?php

use exception\SaldoInsuficienteException;

class ContaCorrente {

    private $titular;

    private $agencia;

    private $numero;

    private $saldo;

    public static $totalDeContas;

    public static $taxaOperacao;

    public $totalSaquesNaoPermitidos;





public function __construct($titular, $agencia, $numero, $saldo){

    $this->titular = $titular;
    $this->agencia = $agencia;
    $this->numero = $numero;
    $this->saldo = $saldo;

    self::$totalDeContas ++;

    try{
        if(self::$totalDeContas < 1) {
            throw new Exception("Valor inferior a zero");
        }
        self::$taxaOperacao = (30 / self::$totalDeContas);

    }catch(Exception $erro){

        echo $erro->getMessage();

        exit;
    }




}    


public function sacar($valor) {

    validacao::verificaNumero($valor);

    if($valor > $this->saldo) {
        throw new SaldoInsuficienteException("Saldo Insuficiente");

    }

    $this->saldo = $this->saldo - $valor;
    return $this;
}

public function depositar($valor) {
    $this->saldo = $this->saldo + $valor;
    return $this->titular;
}



public function transferir($valor, ContaCorrente $contaCorrente) {

    validacao::verificaNumero($valor);

    if($valor < 0){
        throw new Exception("O valor não é permitido");

    }
    $this->sacar($valor);


    $contaCorrente->depositar($valor);
    return $this;

}




public function getTitular(){
    return $this->titular;
}     

public function __get($atributo) {

    validacao::protegeAtributo($atributo);return $this->$atributo;

}

public function __set($atributo, $valor) {

        validacao::protegeAtributo($atributo);
        $this->$atributo = $valor;

    }




public function setNumero($numero){
    return $this->numero = $numero;
}




private function formatarSaldo() {

    return "R$ ".number_format($this->saldo, 2,",",".");
}


public function getSaldo() {

    return $this->formatarSaldo();
}

public function __toString() {
    $this->saldo;
}



}

-----------------------------------SaldoInsuficienteException---------------------------


<?php

namespace exception;

class SaldoInsuficienteException extends \Exception{


    public function __construct($mensagem, $codigo = null, $ex = null){


        parent::__construct($mensagem, $codigo, $ex);
    }
}

?>
1 resposta
solução!

Oi Bruno, tudo bom?

O warning:

Warning: The use statement with non-compound name 'validacao' has no effect in C:\Users\Bruno\Alura\Tratamento\index.php on line 10 *

Indica que estamos importando validacao não é necessária.

No caso, na linha 10 do index.php:

use validacao;

Remova essa linha e o warning deve parar de aparecer.

O segundo warning é o mesmo caso porém com ContaCorrente.

Esse erro costuma acontecer quando todos os arquivos ficam no mesmo diretório já que no PHP não há necessidade de importar classes que compartilham o mesmo diretório =)

Abraço

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software