Jump to content


Photo

Erro Ao Aparecer O Conteúdo


  • Faça o login para participar
2 replies to this topic

#1 Alan Carlo

Alan Carlo

    Turista

  • Usuários
  • 27 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro

Posted 28/05/2013, 00:03

Olá amigos,

Eu estava aqui treinando a criação de classes em PHP.

Criei o código a seguir:

Arquivo tpl.class.php
<?php


class TPL{

	
	function TituloSite($nome){
		echo "$nome";	
	}
	
	
	function TopoSite(){
		echo "<div id='topo'>Aqui &eacute; o topo do site.</div>\n";
	}
	
	
	function ConteudoSite(){
		$estilo = $this->ConfiguraConteudo(2);
		echo "<div id='conteudo'>Aqui &eacute; o conte&uacute;do do site</div>\n $estilo</div>\n";
	}
	
	
	function Rodape(){
		echo "<div id='rodape'>Aqui &eacute; o rodapédo site.</div>\n";	
	}
	
	//Aqui vou dar 2 opções de visual para meu conteudo (1 - barra a esquerda, 2 - barra a direita) 
	function ConfiguraConteudo($visual){
		if ($visual == 1){
			echo "<div>O visual escolhido foi o 1</div>\n";		
		} else {
			echo "<div>O visual escolhido foi o 2</div>\n";	
		}
	}
}

?>


Arquivo index.php
<?php
		include("tpl.class.php");
		$index = new TPL();
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php $index->TituloSite("Aqui eu digo o titulo"); ?></title>
</head>

<body>
	
		<?php
			$index->TopoSite();
			$index->ConteudoSite();
			$index->Rodape();
		?>
	
			
  
</body>
</html>


Quando executo index.php no navegador aparece assim:

Aqui é o topo do site.
O visual escolhido foi o 2
Aqui é o conteúdo do site.
Aqui é o rodapé do site.

Então, a intenção era que aparecesse assim:
Aqui é o topo do site.
Aqui é o conteúdo do site.
O visual escolhido foi o 2
Aqui é o rodapé do site.

Deveria aparecer desta forma por que a classe colocaria a função ConfiguraConteudo dentro da div conteudo.

Alguém poderia me ajudar nessa?
Empreendedorismo Sempre...

#2 Victor Hugo Odo

Victor Hugo Odo

    Doutor

  • Administradores
  • 779 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP
  • Interesses:Compartilhar conhecimentos!

Posted 02/06/2013, 12:12

Olá,

O problema é que o método ConfiguraConteudo já faz o echo no momento que você atribui à variável $estilo. Como esse método só é chamado dentro da classe, você poderia definí-lo como private, e usar return ao invés de echo, e, enfim usar o echo do $estilo no método público ConteudoSite. Ou não, pela finalidade da sua classe, você poderia deixar o echo direto no index.php, usando apenas return na classe. Assim você ganha flexibilidade para manipular os dados e faz o echo quando for mais conveniente.


Espero ter ajudado.

Abs

Fórum WMO - Administrador


#3 Alan Carlo

Alan Carlo

    Turista

  • Usuários
  • 27 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro

Posted 08/07/2013, 01:58

Olá,

O problema é que o método ConfiguraConteudo já faz o echo no momento que você atribui à variável $estilo. Como esse método só é chamado dentro da classe, você poderia definí-lo como private, e usar return ao invés de echo, e, enfim usar o echo do $estilo no método público ConteudoSite. Ou não, pela finalidade da sua classe, você poderia deixar o echo direto no index.php, usando apenas return na classe. Assim você ganha flexibilidade para manipular os dados e faz o echo quando for mais conveniente.


Espero ter ajudado.

Abs


Realmente, falta de atenção...

Obrigado amigo...
Empreendedorismo Sempre...




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq