Проблема вызова метода класса

_RVK_

Новичок
Проблема вызова метода класса

Есть класс, у него есть свойства:
PHP:
 var $host='localhost';
 var $login='root';
 var $password;
 var $database_name;
Есть метод:
PHP:
function _connect()
{
 print $this->host;
 print $this->login;
 print $this->password;

 @mysql_pconnect($this->host,$this->login,$this->password) OR
  $this->form_messages[]="<div class=$this->err_msg_css_class>".$this->em_connect.'</div>';

 @mysql_select_db($this->database_name) OR
  $this->form_messages[]="<div class=$this->err_msg_css_class>".$this->em_selectdb.'</div>';
}
так вот при вызове метода он выполняется, но свойства оказываются пустыми.

Метод вызывается из другого метода этого класса:
PHP:
$this->_connect();
Если вызывю извне то всё работает нормально.
 

Crazy

Developer
Ты не привел полного проблеммного кода. Если ты полагаешь, что кто-то будет пытаться привести показанные обрывки к тестовому примеру и его запускать, то ты ошибаешься...
 

PhpDeveloper

Guest
Re: Проблема вызова метода класса

Автор оригинала: Diesel
Есть класс, у него есть свойства:
PHP:
 var $host='localhost';
 var $login='root';
 var $password;
 var $database_name;
Есть метод:
PHP:
function _connect()
{
 print $this->host;
 print $this->login;
 print $this->password;

 @mysql_pconnect($this->host,$this->login,$this->password) OR
  $this->form_messages[]="<div class=$this->err_msg_css_class>".$this->em_connect.'</div>';

 @mysql_select_db($this->database_name) OR
  $this->form_messages[]="<div class=$this->err_msg_css_class>".$this->em_selectdb.'</div>';
}
так вот при вызове метода он выполняется, но свойства оказываются пустыми.

Метод вызывается из другого метода этого класса:
PHP:
$this->_connect();
Если вызывю извне то всё работает нормально.
1) В pear названия деструкторов начинаются с подчеркивания, хотя вряд ли это как-то связано с твоим годом.

2) Убери @ и сделай обработку ошибок таким образом:

mysql_select_db ( $this->db_name ) or die ( mysql_errno().': '.mysql_error() );
 

_RVK_

Новичок
В pear названия деструкторов начинаются с подчеркивания, хотя вряд ли это как-то связано с твоим годом
Я решил так обзывать приватные методы.
Спасибо. Разобрался. Я устанавливал свойства класса из конфигурационного файла а сам файл подключить забыл. :)
 
Сверху