Jump to content
fnatan

PHP - Ler atributo da classe

Recommended Posts

Olá galera, novato em PHP aqui.

 

Fiz uma classe e gostaria de ler o valor de uma determinada variável, porém essa variável será alterada por alguns métodos enquanto ela estiver instanciada, mas quando leio o valor dela essas alterações não são visualizadas.

 

segue exemplo:

 

<?php


$test = new classeTeste;

echo "valor inicial de myVar: ".$test->myVar."</br>";
$test->alterar_myVar();
echo "myVar após chamada do método: ".$test->myVar."</br>";

class classeTeste {

    public $myVar = 1000;
    
    public function alterar_myVar(){
    	$myVar = 20000;
    	echo "Valor myVar foi alterado para: ".$myVar." pelo método alterar_myVar</br>";
    }
}


?>

Valeu e Abraço!

Share this post


Link to post
Share on other sites

Acho que só meu exemplo já explica, mas qualquer dúvida é só perguntar.

<?php
$test = new classeTeste;

echo "Valor inicial \"{$test->myVar}\" <br />"; // 1000

$test->alterar_myVar();
echo "myVar após chamada do método: \"{$test->myVar}\" <br />"; // Continua sendo 1000

$test->myVar = 2000;
echo "Atributo público pode ser manipulado diretamente \"{$test->myVar}\" <br />"; // 2000

echo "<hr />";
echo "Valor inicial do atributo myVarB \"{$test->verMyVar()}\" <br />"; // 1000

$test->alterarMyVar();
echo "Valor do atributo myVarB depois de alterado \"{$test->verMyVar()}\" <br />"; // 20000

//$test->myVarB = 2000; /* ERRO Não se pode acessar atributo protegido */

class classeTeste {

    public $myVar = 1000; // Isso aqui é um atributo (público)
    private $myVarB = 1000;

    public function alterar_myVar() {
        $myVar = 20000; // Isso aqui é uma variável e não o atributo
    }
    
    /*
     * Nome de métodos não devem conter _ "underline" só letras minusculas e maiúsculas
     * Isso não é regra e sim boa prática
     */
    public function alterarMyVar() {
        $this->myVarB = 20000;
    }
    
    public function verMyVar() {
        return ($this->myVarB);
    }

}

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Luiz Henrique
      Olá pessoas,
       
      Tenho uma classe e dentro dela várias chamadas para métodos de acordo com a necessidade em outra classe (para obter dados DB), como são muitas e vou duplicar os arquivos, para ganhar tempo queria colocar o nome da classe em uma variável porém não funciona.
       
      use Class1; class Class2 { public $className = 'Class1'; ... $dados = $this->className::function(); // não funciona } Era para gerar isso:
      $dados = Class1::function();
      Se eu der um echo $this->$className, ele me retorno o nome da Class1 porém para executar um método dentro da Class1 não vai, diz que a classe Class1 não existe!
      Tem alguma forma de funcionar isso?
       
      Obrigado.
    • By k9studio
      Meus amigos tenho essa classe e
      quero passar uns dados vindo de BD
      seria:
      $client_id;
      $pay_url;;
      $secret;
       
       
      namespace Pay;
      class Pay {   
         public function Auth(){
                  $ch = curl_init();
              curl_setopt($ch, CURLOPT_URL, $pay_url);
              curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
              curl_setopt($ch, CURLOPT_POST, 1);
              curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=client_credentials");
              //CURLOPT_USERPWD = client_id : Secret
              curl_setopt($ch, CURLOPT_USERPWD, $client_id . ':' . $secret);
              }
          }   
    • By Boca
      Pessoas estou com uma duvida preciso de ajuda
      Tenho alguns campos chamados "horario_0, horario_1, horario_2, horario_3, horario_4, horario_5, horario_6 no meu banco de dados
      estou precisando que ela seja dinâmica dentro de um for
      exemplo:
       
      <?php for ($dia = 0; $dia < 7; $dia++): $resultadoBD->horario_$dia endfor; ?>  
    • By SAS Junior
      Bom dia!
      Estou com uma dúvida, sou novo com sql, estou com um probleminha, todo dia preciso gerar lista de clientes pegar o id deles para fazer consulta posterior, como posso atribuir esses id's a uma variável e fazer a outra consulta por essa variável, é possível fazer isso? 
    • By RickSilva
      Bom, preciso criar uma funçao que faz uma variavel string ter um valor durante um periodo de 5 segundos e depois outro valor durante os proximos 5 segundos, fazendo isso a todo momento. Por exemplo: Uma variavel cor que tenha como valor "preto" durante 5 segundos e depois receba o valor "branco".  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.