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

Interface php

Boa noite, estou tendo o seguinte erro

Fatal error: Interface 'Imposto' not found in C:\xampp\htdocs\Design-Patterns\ICMS.php on line 3

<?php
    interface Imposto {
        public function calcula(Orcamento $orcamento);
    }

?>insira seu código aqui
<?php

       class ICMS implements Imposto {

          public function calcula(Orcamento $orcamento) {
              return $orcamento->getValor() * 0.05;
          }

      }

?>
3 respostas

Oi Vitor, você precisa importar a interface onde quer implementar ela, lembra do require? Ele é pra interfaces também.

Boa tarde, eu estou com 3 classes que implementam imposto:

<?php


    class ISS implements Imposto{
        public function calcula(Orcamento $orcamento){
            return $orcamento->getValor()  * 0.1;
        }

    }
?>

<?php


    class KCV implements Imposto {
        public function calcula(Orcamento $orcamento){
            return $orcamento->getValor() * 0.2;
        }

    }
?>
<?php

       class ICMS implements Imposto {

          public function calcula(Orcamento $orcamento) {
              return $orcamento->getValor() * 0.05;
          }

      }

?>

eu preciso colocar o require nas 3? Pois so colocando o " require_once("Imposto.php");" só na ICMS o código já funciona

solução!

Você precisaria sim colocar nas 3, colocar em uma só funciona parcialmente. Isso por que você está usando as 3 classes em um mesmo arquivo provavelmente.

Se em algum arquivo separado, você usar a classe KCV sem usar a ICMS, você vai ter problemas novamente.

Como boa prática, sugiro importar tudo que você usa na classe, independente de ter importado em outro lugar. :)