Вопрос наследование классов ПХП
Есть 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 в этом объекте.
|