Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.20;
Скачать: CL | DM;

Вниз

PHP: Call to a member function ...   Найти похожие ветки 

 
SerJaNT ©   (2007-04-21 11:11) [0]

Файл index.php:

// выше создаю экземпляр класса Users
include "include/functions.php";


Файл functions.php:

function autoloader ($side)
{
   $autoload = ListAllFiles("autoload");
   foreach ($autoload AS $filename)
   {
       if (strpos($filename,".php"))
       {
           define("_AUTOLOAD_",$filename);
           include_once "autoload/".$filename;
           if (_SIDE_ == $side)
           {
               __start();
           }
       }
   }
}


Эта функция перебирает все файлы в диретории autoload и загружает только PHP-файлы. В этой папке всего один файл, его содержимое такое:

<?php  
if (defined("_AUTOLOAD_")) {

   define("_SIDE_", "LEVEL_3");

   function __start()
   {
       global $db,$user,$_SESSION;
       if ($_SESSION["user_logged"] == "yes")
       {
           $res8 = $db->query("SELECT * FROM %PREFIX%privmsg WHERE msg_to="".$user->GetUserInfoBy($_SESSION["user_id"],"zn_login")."" AND msg_have_read="no" AND msg_folder="inbox"");
           $count = $db->num_rows($res8);

           if ($count != 0)
           {
               print "Hello world!";
           }
       }

   }

}
?>


при выполнении пишет "Fatal error: Call to a member function GetUserInfoBy() on a non-object in e:\document\znakomsya.net\autoload\CheckNewPM.php on line 21"

21 - это где $user->GetUserInfoBy($_SESSION["user_id"],"zn_login"), но ведь экземпляр класса Users я создал еще в index.php и присвоил в $user. Почему невозможно обратиться к методу GetUserInfoBy класса Users? Переменную $user глобально объявил, вроде. Чего не хватает?


 
Zeqfreed ©   (2007-04-21 16:44) [1]

Вы вопросы по PHP сюда пишете потому, что знаете, что на phpclub.ru с такими вопросами вас засмеют, ага?


 
SerJaNT ©   (2007-04-22 00:40) [2]

> [1] Zeqfreed ©   (21.04.07 16:44)


Сюда ближе идти :)


 
homm ©   (2007-04-22 00:47) [3]

> Вы вопросы по PHP сюда пишете потому, что знаете, что на
> phpclub.ru с такими вопросами вас засмеют, ага?

Я бы, например писал имеено сюда, потому что в DMClient"е нет сверху вкладки phpclub.ru :)


 
Real ©   (2007-04-22 02:46) [4]


> // выше создаю экземпляр класса Users

А это что, топ-секретная часть? может имеет смысл привести весь исходник? или это конкурс на телепатию? Ну что ж, будем пробовать :) Регистр символов объявления функции, идентичен ее вызову?


 
SerJaNT ©   (2007-04-22 03:31) [5]

users.php
<?php    
class users
{
   function GetUserInfoBy($user_id,$field_name)
   {
       global $db;
       $res = $db->query("SELECT * FROM %PREFIX%users WHERE Id="".$user_id.""");
       $data = $db->fetch_array($res);
       return $data[$field_name];
   }
   function IsUserLogged()
   {
       if ($_SESSION["user_logged"] == "yes") return true;
       return false;
   }
}
?>


 
McSimm ©   (2007-04-22 10:56) [6]


> экземпляр класса Users я создал еще в index.php и присвоил
> в $user

Значит нет. В 21й строке в этой переменной не объект, можете убедится с помощью var_dump.

Возможно в index.php инициализация внутри функции и вы забыли глобализировать ее там. Гадать нет желания. Гораздо проще вам отладить.



Страницы: 1 вся ветка

Текущий архив: 2007.05.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.043 c
8-1158036845
Dmitriy O_
2006-09-12 08:54
2007.05.20
Как конвертировать BMP в JPG посредсвои Delphi ?


2-1178101289
sergeyst
2007-05-02 14:21
2007.05.20
Как закрыть нужную форму?


2-1178357756
Marat
2007-05-05 13:35
2007.05.20
Непонятки в QReport


3-1172797089
Ш-К
2007-03-02 03:58
2007.05.20
Как получить записи с единственным значением поля?


2-1177530314
Aibolit
2007-04-25 23:45
2007.05.20
как вычесть две даты и получить разницу в днях