AntiSlaed CMS
Вход
Логин: Пароль:Забыли пароль?
Запомнить вас на этом компьютере?
Войти скрытым?

Здравствуйте, Гость ( Вход | Регистрация )

> Внимание!

Адрес нашего форума изменился, теперь мы доступны по адресу antislaed.net. Обновите ссылки и закладки, он больше не изменится.


> Взаимодействие классов в PHP, Вызванный класс обращается к вызывающему
wizard993
сообщение May 11 2011, 16:41
Сообщение #1


Продвинутый юзверь
Иконка группы

Группа: Пользователи

Сообщений: 68
Регистрация:
29.1.2008
Из: Кубинка-8
Пользователь №: 2,152
Спасибо сказали: 10

Вставить ник




Допустим у меня есть первый класс:
КОД
<?php
class Primary
{
  public $var='какая-то переменная';
  public function __construct()
    {
      $db=array(тут данные для соединения с БД);
      $this->Secondary = new Secondary;
      $this->Secondary->Load($this->var);
      $this->Third = new Third;
      $this->Third->Method1($db);
    }
}
?>


Также есть второй класс:
КОД
<?php
class Secondary
{
  public function Load($var)
    {
      $dbname ='чему-то равно';
      $var2 = $Primary->Third->Method2($dbname);
    }
}
?>


И Ещё есть третий класс:
КОД
<?php
class Third
{
  public function Method1()
    {
      $this->mysqli = new mysqli($db['host'], $db['user'], $db['password'], $db['name']);
    }
   public function Method2($dbname)
    {
      return $this->mysqli->select_db($dbname);
    }
}
?>

Каждый класс расположен в отдельном файле.

Пишет ошибку, Fatal error: Call to a member function Method2() on a non-object in [...тут путь... к файлу, содержащему Secondary Class ].
Конкретно PHP не понравилась строка $var2 = $Primary->Third->Method2($dbname); в Secondary...

У меня есть предчувствие, что вызываемый класс не может просто так обращаться к вызывающему его классу.

Подскажите, пожалуйста, почему так происходит, в чём моя ошибка и как можно решить данную проблему.

Сообщение отредактировал wizard993: May 11 2011, 21:17
Перейти в начало страницы
 
     Выделите текст перед нажатием цитаты
+Цитировать сообщение

Сообщений в этой теме
wizard993   Взаимодействие классов в PHP   May 11 2011, 16:41
Sunvas   Переменная $Primary не инициализирована. И не...   May 11 2011, 20:26
wizard993   Sunvas, спасибо, что ответили. Создал файл index....   May 11 2011, 21:11
vitalik1972   в этом случае класс Primary надо делать статически...   May 11 2011, 22:44
wizard993   vitalik1972, спасибо, буду дальше думать... Тогда...   May 11 2011, 22:59
vitalik1972   ЦИТАТА$this->Primary = Primary::Primary();...   May 12 2011, 08:15
wizard993   ЦИТАТА(vitalik1972 @ May 12 2011, 08:15 )...   May 12 2011, 08:28
vitalik1972   ЦИТАТАТо есть, Вы имеете ввиду, что допустим, клас...   May 12 2011, 20:56
wizard993   Ну KiVi скачал, ещё на выходных начал по-тихоньку ...   May 12 2011, 21:30
vitalik1972   В элеаноре getInstace в киви Init, разницы никакой...   May 13 2011, 07:32
wizard993   ЦИТАТАСтатический - это говорит о том, что в памят...   May 13 2011, 07:52
vitalik1972   Ну вот например смотри: Ты создаешь какое-либо при...   May 13 2011, 11:39
wizard993   vitalik1972 Ещё раз спасибо за помощь Попробовал ...   May 13 2011, 21:10
wizard993   Ну статика, это конечно хорошо... но меня всё рав...   May 16 2011, 20:38
vitalik1972   ЦИТАТАтам в index.php следующие строки КОД require...   May 16 2011, 22:38
wizard993   vitalik1972 так вот этого я и не пойму... ты же с...   May 16 2011, 22:49
patriot   Класс MainClass реализует шаблон проектирования Si...   May 22 2011, 17:35


Ответить в данную темуНачать новую тему

2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
 

RSS Текстовая версия Сейчас: 1 June 2024 - 13:18
Хостинг предоставлен NetLevel.Ru   Eleanor CMS