Вопрос наследование классов ПХП

Discussion in 'PHP' started by steamer, 21 Dec 2006.

  1. steamer

    steamer Elder - Старейшина

    Joined:
    3 May 2006
    Messages:
    44
    Likes Received:
    7
    Reputations:
    1
    Есть 2 класса
    PHP:
    class db{
        var 
    $db_con;
        function 
    db_open($mysql_host$db_name$db_user$db_pass){
            @
    $this->db_con=mysql_connect($mysql_host$db_user$db_pass);
            @
    mysql_select_db($db_name$this->db_con);
            return 
    $this->db_con;
        }
        function 
    table_select ($table_name$condition$column){
            
    $allrows=array();
            
    $i=0;
            
    $query="SELECT * FROM $table WHERE $column=$condition;";
            
    $result=mysql_query($query$this->db_con);
            while (
    $row=mysql_fetch_array($result)){
                
    $allrows[$i]=$row;
                
    $i++;
            }
            return 
    $allrows;
        }
    }
    class 
    user extends db{
        var 
    $user_id;
        var 
    $user_name;
        var 
    $reg_date;
        var 
    $bonus=array();
        var 
    $cookie;
        var 
    $session;
        var 
    $user_agent;
        function 
    user_check($name$password_hash){
            
    $query="SELECT id FROM users WHERE name='$name' and password='$password_hash';";
            
    $result=mysql_query($query$this->db_con);
            
    $this->user_id=mysql_result($result,0,0);
        }
        function 
    user_info(){
            if (!isset(
    $this->user_id)){
                
    $user_info='none';
            }
            else{
                
    $table_name='users';
                
    $condition=$this->user_id;
                
    $column='id';
                
    $user_info=table_select ($table_name$condition$column);
            }
            return 
    $user_info;
        }
    }
    Как сказано в учебнике здесь в классе user должен наследоваться атрибут $db_con из класса db. Он наследуется, но пустой, т.е. без значения. Почему? И наследование методов: из класса db наследуется table_select. Я могу вызвать метод в методе как в примере выше или при наследовании допустима только такая конструкция:
    $db_con=$user->db_open($mysql_host, $db_name, $db_user, $db_pass);
    и в результате у меня видна переменная $db_con в этом объекте.
     
  2. nc.STRIEM

    nc.STRIEM Members of Antichat

    Joined:
    5 Apr 2006
    Messages:
    1,036
    Likes Received:
    347
    Reputations:
    292
    Не понял что ты имееш ввиду??? как обект класа может наследоваться со значениями, если у него их нет!! знчения могут быть присвоены только уже при обявлении представителя этого класса


    А что в данном слдучае есть $user ?? не заметил чтоб ты его гдето обявлял! (прежде чем обратиться к обекту какого либо класса нужно обявить представителя от этого класса)

    вобще бред какойто...
    не понял четко твоего вопроса...
     
    #2 nc.STRIEM, 21 Dec 2006
    Last edited: 21 Dec 2006