Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Опять ООП :(
 
 автор: Akira   (02.11.2005 в 19:23)   письмо автору
 
 


<?
class sql_manager {
    var 
$value;
    var 
$flag = false;
    var 
$dbname = 'phpcom';
    var 
$dbhost = 'localhost';
    var 
$dbuser = 'root';
    var 
$dbpass = '';
    function 
__construct(){
        
mysql_connect($this->dbhost, $this->dbuser, $this->dbpass); // Коннект к бд
        
mysql_select_db($this->dbname); // Выбор бд
    
}
    function 
insert($table = "test", $values = "test1, test2, test3"){
        
$this->sql = "INSERT INTO $table  VALUES ($values)";
    }
    function 
update($table = "test", $values = "test1 = test, test1 = test, test1 = test", $id = "1"){
        
$this->sql =  "UPDATE $table SET $values WHERE id = $id";
    }
    function 
select($table = "test", $row = "*" ,$limit=false, $start = "0", $end = "0"){
        
$this->sql =  "SELECT $row FROM $table";
        
$limit ? $this->sql .= " LIMIT $start, $end" : "" ;
    }
    function 
delete($table = "test" , $id = "0", $limit=false, $start = "1"){
        
$this->sql =  "DELETE FROM $table WHERE id = $id ";
        
$limit ? $this->sql .= " LIMIT $start" : "" ;
    }
    function 
__destruct() {
        
$row = "";
        
$result = "";
        
$value = "";
        
$result = mysql_query($this->sql);
        global 
$value;
        if(!
$result) {
            exit(
mysql_error());
        }
        if (
$this->flag) {
            while (
$row = mysql_fetch_assoc($result)) {
                
$value[] = $row;
            }
    } else {
        
$value = mysql_fetch_assoc($result);
    }
    }

}
$test = new sql_manager();
$test->select("news");
$test->flag=true;
print_r ($value);
?>


$value не выводиться :( Что не так?

   
 
 автор: isset   (02.11.2005 в 19:38)   письмо автору
 
   для: Akira   (02.11.2005 в 19:23)
 


$test = new sql_manager();
$test->select("news");
$test->flag=true;
unset($test);
print_r ($value);
?> 

?

   
 
 автор: cheops   (02.11.2005 в 19:49)   письмо автору
 
   для: Akira   (02.11.2005 в 19:23)
 

$value находится внутри класса и не доступен для использования в не его - инкапсуляция. Необходимо предусмотреть медот, который бы выводил это значение в окно браузера внутри метода или возвращал в качестве значения.

   
 
 автор: Akira   (02.11.2005 в 21:47)   письмо автору
 
   для: cheops   (02.11.2005 в 19:49)
 

а как вы посоветуете организовать?

   
 
 автор: Евгений Петров   (02.11.2005 в 21:53)   письмо автору
 
   для: Akira   (02.11.2005 в 21:47)
 

Напишите в классе метод, например

function printr()
{
  print_r($value);
}


И вызывайте его:

  $test->printr();

   
 
 автор: Евгений Петров   (02.11.2005 в 21:58)   письмо автору
 
   для: Евгений Петров   (02.11.2005 в 21:53)
 

А хотя попробуйте оставить как есть и вызывать так:

print_r($test->$value); 

   
 
 автор: Akira   (02.11.2005 в 22:22)   письмо автору
 
   для: Евгений Петров   (02.11.2005 в 21:58)
 

Уже пробывал. Не помогло.

   
 
 автор: Atom   (02.11.2005 в 22:40)   письмо автору
 
   для: Akira   (02.11.2005 в 22:22)
 

А

return $value

не работает?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования