ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Вопрос наследование классов ПХП
  #1  
Старый 21.12.2006, 02:12
Аватар для steamer
steamer
Познающий
Регистрация: 03.05.2006
Сообщений: 82
Провел на форуме:
219818

Репутация: 10
Отправить сообщение для steamer с помощью ICQ
По умолчанию Вопрос наследование классов ПХП

Есть 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  
Старый 21.12.2006, 02:32
Аватар для nc.STRIEM
nc.STRIEM
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме:
3493315

Репутация: 1228


Отправить сообщение для nc.STRIEM с помощью ICQ
По умолчанию

Цитата:
Сообщение от steamer  
Он наследуется, но пустой, т.е. без значения. Почему?
Не понял что ты имееш ввиду??? как обект класа может наследоваться со значениями, если у него их нет!! знчения могут быть присвоены только уже при обявлении представителя этого класса


Цитата:
$db_con=$user->db_open($mysql_host, $db_name, $db_user, $db_pass);
А что в данном слдучае есть $user ?? не заметил чтоб ты его гдето обявлял! (прежде чем обратиться к обекту какого либо класса нужно обявить представителя от этого класса)

вобще бред какойто...
не понял четко твоего вопроса...

Последний раз редактировалось nc.STRIEM; 21.12.2006 в 02:38..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Proxy FAQ foreva Чужие Статьи 12 04.01.2008 12:15
ЕсТь ВоПрос Guma Чаты 4 26.10.2005 21:48
ВОПРОС ЗНАТОКАМ Hrust Болталка 12 23.01.2005 19:31
Вопрос... Black_Death Болталка 1 05.01.2005 04:56
Вопрос по брутфорсу _at_ Чаты 0 21.12.2004 19:15



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ