Форум: "Прочее";
Текущий архив: 2007.05.20;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.041 c