Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Клас в класе


Автор: Zorak 10.3.2013, 18:05
Дамы и господа. Столкнулся с такой проблемой: Я написал определенный класс, примустим class.work.php ... и создал класс class.error.php  ... В рабочем классе все работает отлично, но в зависимости от определенных действий в процессе возникают некоторые ошибки, которые я отлавливаю с помощью написанных мной функций. Теперь я хочу взять код ошибки и передать в иной класс, чтобы вывести текст ошибки... т.е. в двух словах вопрос звучит так:
 
Код

Как подключить клас в классе и использовать в нем функции?


Пример того что я хочу, думаю будет понятно:
Код

<?php
require_once('class.error.php');
$Error = new error();

class work
{
  function f1()
  {
    .....
    $Error -> ShowError('id_error');
  }
}
?>


Спасибо!

Автор: Чучмек 10.3.2013, 18:35
Код

...
  function f1()
  {
  GLOBAL $Error;
  ...

?

Автор: Zorak 10.3.2013, 18:50
Цитата(Чучмек @ 10.3.2013,  18:35)
Код

...
  function f1()
  {
  GLOBAL $Error;
  ...

?

Неа, никак...

Автор: Sanchezzz 10.3.2013, 19:02
Передача класса ошибок как аргумент нельзя?


Автор: Чучмек 10.3.2013, 19:04
Код

class work
 {
 var $Error;
 function work()
   {
   $this->Error = new error();
   ...
   }
 function f1()
   {
   ...
   $this->Error->ShowError('id_error');
   }
 }



Цитата(Zorak @  10.3.2013,  18:50 Найти цитируемый пост)

Неа, никак... 
 ?
Цитата(Zorak @  10.3.2013,  18:05 Найти цитируемый пост)
 думаю будет понятно

Наверно нет.

Автор: Zorak 10.3.2013, 19:47
Мне чтобы написать  $this->Error = new error(); надо подключить клас, ибо появляется 
Fatal error: Class 'error' not found in D:\www\game.art\class.work.php on line 14... когда пишу
require_once('class.error.php'); 
Код

class work
 {
 var $Error;
 function work()
   {
   require_once('class.error.php');
   $this->Error = new error();
   ...
   }
 function f1()
   {
   ...
   $this->Error->ShowError('id_error');
   }
 }

появляется ошибка
Fatal error: Cannot access empty property in D:\www\game.art\class.work.php on line 14

В каком бы месте не експериментировал подключать клас и определять $Error как обьект класса error ошибка таже:
Fatal error: Cannot access empty property in D:\www\game.art\class.work.php on line 14

Добавлено через 4 минуты и 46 секунд
Такс.... все работает.. именно так как посоветовал и Чучмек , просто когда тестировал я написал
$this -> $Error -> ShowError(); - Просто по глупости поставил знак доллара перед Error
а надо было
$this -> Error -> ShowError(); 

Рабочий пример написан в предыдущем моем сообщении. Всем спасибо очень большое, Чумчек сильно помог)

Тему помечаю решенной.

Автор: ksnk 10.3.2013, 20:04
сделать скелетный класс для дебага, ошибок и прочей вспомогательности. Добавить его в автозагрузку. Методы делать статическими, для страха...

Код

<?php
class work
{
  function f1()
  {
    .....
    ENGINE::ShowError('id_error');
  }
}
?>


файл ENGINE.php
Код

class ENGINE {
...
   static function ShowError(){
      ...
   }
}

?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)