Jump to content
Fórum Script Brasil
  • 0

passar valor entre classes


Ricardo T. do Prado

Question

model.class.php

class Model {

    protected $db;
    public $_tabela;
    public $_primary_key;

    public function __construct($table_name, $primary_key) {
        
        $this->db = new PDO('mysql: host=localhost; dbname=radioest_radio', 'root', '');
        $this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $this->_tabela = $table_name;
        $this->_primary_key = $primary_key;
                
    }
como que faço para passar o valor das variáveis
$this->_tabela = $table_name;
        $this->_primary_key = $primary_key;
um exemplo seria datagrid.class.php
class DataGrid extends Model {

    public $tbName;
    public $pk;
    
    public function __construct() {
        
        $this->tbName = $this->_tabela;
        $this->pk = $this->_primary_key;
       
    }

Só que não passa os valores; Sugestoes?

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Se DataGrid é uma extenão de Model você não acessa os elementos de Model a partir do operador de referenciamento "$this->". Você quer acessar os dados de uma classe pai, ou classe genérica. Em PHP, para tal, utilize:

parent::variavel;
Exemplo:
class Teste{
            
            public static $nome="Deu certo!";
                
        }
        class beta extends Teste{
        
            public $aqui;// Observe que eu não uso 'static' aqui, uma vez que essa variável não é estática.
            
            function __construct(){
                $this->aqui = parent::$nome;    
            }
            
            function saida(){
                echo $this->aqui;    
            }
            
        }
        
        $obj = new beta;
        
        $obj->saida();

Confira mais em:

Parent

Edited by 3l3tr1c
Link to comment
Share on other sites

  • 0

Você ta falando de aninhamento de classes? Tipo uma extends dentro de outra? Classe Avô, pai e filho? o.O

Quanto a sobrescrever o construtor do pai, isso ocorre se você o invocar na extends, e.g.:

class Pai{
     function __construct(){
          instrucoes;
     }
}

class Filho extends Pai{

     function __construct(){
          parent::__construct();// aqui você chama o construtor pai, mas se você não quiser q ele seja alterado, então não invoque-o
     }

}

Edited by 3l3tr1c
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...