Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Вопрос наследование классов ПХП |

21.12.2006, 02:12
|
|
Познающий
Регистрация: 03.05.2006
Сообщений: 82
Провел на форуме: 219818
Репутация:
10
|
|
Вопрос наследование классов ПХП
Есть 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 в этом объекте.
|
|
|

21.12.2006, 02:32
|
|
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме: 3493315
Репутация:
1228
|
|
Сообщение от steamer
Он наследуется, но пустой, т.е. без значения. Почему?
Не понял что ты имееш ввиду??? как обект класа может наследоваться со значениями, если у него их нет!! знчения могут быть присвоены только уже при обявлении представителя этого класса
$db_con=$user->db_open($mysql_host, $db_name, $db_user, $db_pass);
А что в данном слдучае есть $user ?? не заметил чтоб ты его гдето обявлял! (прежде чем обратиться к обекту какого либо класса нужно обявить представителя от этого класса)
вобще бред какойто...
не понял четко твоего вопроса...
Последний раз редактировалось nc.STRIEM; 21.12.2006 в 02:38..
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|