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

Форум PHP

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

 

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

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

тема: доступ к переменной в фукнции
 
 автор: moonfox   (09.05.2010 в 22:33)   письмо автору
 
 

есть класс

<?
class db
{
var 
$host 'localhost';
var 
$user 'root';
var 
$password '1224';
var 
$database 'hivmed';
var 
$connection 0;
var 
$res 0;
var 
$row '';
var 
$uniquevar '';
var 
$requests 0;
var 
$ray '';

function 
query($string)
    {
    if(
$this->res mysql_query($string))
    {
    
$this->requests++;
    return 
$this->res;
    }    
    
    else       
    
$this->error_desc(mysql_error());
    }

function 
fetch()
    {
    while(
$this->ray mysql_fetch_array($this->res))
    
$rows[] = $this->ray;
            
      if(
is_array($rows))
    return 
$rows;
    
    }
?>
в index.php

<?
$db
->query('SELECT `id`, `title_'.$lang.'`, `content_'.$lang.'`, `type`, `template`, `ico` 
FROM `menu` WHERE `main` = 1 and `active` = 1 ORDER BY `pos` ASC'
);
$a $db->fetch();

print_r($a);  // массив
print_r($rows// пусто
?>

почему из index.php я не могу получить содержимое $rows?

  Ответить  
 
 автор: moonfox   (10.05.2010 в 08:26)   письмо автору
 
   для: moonfox   (09.05.2010 в 22:33)
 

////

  Ответить  
 
 автор: baston   (10.05.2010 в 18:32)   письмо автору
 
   для: moonfox   (09.05.2010 в 22:33)
 

Я могу ошибиться, но вот вы написали (взяли где-то) класс. Так ведь чтобы получить доступ к его методам и свойствам нужно создать объект класса. Из вашего кода это не видно.

P.S. В крайнем случае нужно объявить эти свойства и методы статическими, чтобы обращаться к ним без создания объекта.

  Ответить  
 
 автор: root   (10.05.2010 в 19:08)   письмо автору
 
   для: moonfox   (09.05.2010 в 22:33)
 

$a - это и есть Ваши $rows из метода fetch().

Читайте:
http://php.net/manual/en/language.variables.scope.php
http://php.net/manual/en/function.return.php

  Ответить  
 
 автор: Tonik992   (12.05.2010 в 00:51)   письмо автору
 
   для: root   (10.05.2010 в 19:08)
 

Да, выше пост был написан.. Для начала нужно создать объект класса..
А переменную из функции нельзя никак получить.. Область видимости, все переменные по завершению работы функции удаляются..

  Ответить  
 
 автор: root   (12.05.2010 в 11:40)   письмо автору
 
   для: Tonik992   (12.05.2010 в 00:51)
 

>Да, выше пост был написан.. Для начала нужно создать объект класса..

Уважаемый, если бы $db не был объектом - результатом был бы Fatal error,
а не массив:
$a = $db->fetch(); 
print_r($a);  // массив
Объект уже создан.

>А переменную из функции нельзя никак получить.. Область видимости, все переменные по завершению работы функции удаляются..

Это Вы мне рассказываете?

  Ответить  
Rambler's Top100
вверх

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