Ir ao conteúdo

PHP Aplicabilidade de métodos PHP


Ir à solução Resolvido por makotsunami,

Posts recomendados

Postado

A fim de estudos, eu fiz o seguinte código que está funcionando perfeitamente, porém gostaria de saber se os métodos empregados nele foram aplicados da forma correta:

<?php



  class Carro {



  private $modelo;

  private $cor;

  private $ano;



  public function __construct(){

    if(isset($_GET['carro'])){

    $this->modelo = $_GET['carro'];

    $this->cor = $_GET['cor'];

    $this->ano = $_GET['ano'];

    }

  }



  public function setCor(){

    if($this->ano < 2015 && $this->cor === "Preto" ) {

    $this->cor = "Cor não disponível para o ano selecionado";

    }else if($this->ano >= 2015 && $this->cor === "Branco"){

    $this->cor = "Cor não disponível para o ano selecionado";

    }else {

    $this->cor;

    }



  	return $this->cor;

  }



  public function setAguardaURL(){

    if(isset($_GET['carro'])){

    return "Modelo: " . ($this->modelo) . "<br/> Cor: " . ($this->setCor()) . "<br/> Ano: " . ($this->ano);

    }

    }

  }



  $landRover = new Carro();

  echo $landRover->setAguardaURL();



?>

 

  • Solução
Postado

@Fertiin Não existe maneira "correta" de programar, mesmo sendo orientada a objetos, em projetos grandes você sempre vai se encontrar em situações onde você terá que resolver um problema de uma maneira que nem sempre é a mais certa. 

 

Mas um coisa é certa, eu nunca vi classes como a sua na minha vida e você provavelmente você nunca vai ver isso caso um dia trabalhe na área de desenvolvimento, normalmente os valores são resgatados antes de se construir a classe.

 

Normalmente teríamos algo assim:

<?php

$cor = isset($_GET['cor']) ? $_GET['cor'] : false;
$ano = isset($_GET['ano']) ? $_GET['ano'] : false;
$modelo = isset($_GET['modelo']) ? $_GET['modelo'] : false;

$landRover = new Carro($cor, $ano, $modelo);

public function __construct($cor, $ano, $modelo) {
	if ($cor && $ano && $modelo) {
		$this->ano = $ano;
		$this->cor = $cor;
		$this->modelo = $modelo;
	}
}

 

Uma das coisas que eu acho mais legais em Java do que em PHP é que em Java podemos ter vários construtores, então não precisaríamos fazer essas verificações chatas dentro do método :D

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!