Ir para conteúdo

POWERED BY:

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!

Compartilhar este post


Link para o post
Compartilhar em outros 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);
    }

}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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

  • Conteúdo Similar

    • Por ILR master
      Fala pessoal.
      Tudo bem?
       
      Tenho o seguinte código que funcionda perfeitamente:
       
      date_default_timezone_set("America/Sao_Paulo");
      $d_inicio= date('Y-m-d');
      $d_final= date('Y-m-d', strtotime('+30  day'));
       
      Mas eu quero definir a quantidade de dias pegando o valor que a variável:
       
      date_default_timezone_set("America/Sao_Paulo");
      $tempo = 30;
      $d_inicio= date('Y-m-d');
      $d_final= date('Y-m-d', strtotime('+$tempo  day'));
       
      Mas quando declaro com variável não funciona.
      Obrigado pela ajuda.
    • Por lezão
      Boa tarde, galera!
      Tudo bem com vcs?
       
      Estou precisando de uma limitador de palavras.
      Tenho um texto de 600 palavras e gostaria de que na pagina principal aparece se, apenas 30 palavras do texto.
      Achei esse codigo na innternet, mas ele não limita palavras, mas sim ele corta as palavras ficando assim:  "Tenho um texto de 600 palav..."
      ?php echo substr("$texto;", 0, 200); ? com uma variavel que limita as palavras ficaria assim: "Tenho um texto de 600 palavras". exibiria essas 6 palavras.
    • Por 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.
    • Por 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);
              }
          }   
    • Por 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; ?>  
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.