ФорумПрограммированиеPHP для идиотов → Чтение функции "b" класса "b" в функции "a" класса "a"

Чтение функции "b" класса "b" в функции "a" класса "a"

  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 16 августа 2008 г. 11:04

    class a{

    function a{
    $b->b( … );
    }

    }

    Собственно Call to a member function b() on a non-object

    Как сделать чтобы функция "b" класса "b" была читаема в классе "a" ?
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 16 августа 2008 г. 11:26, спустя 21 минуту 51 секунду

    $b = new b();
    $b->b( … );

    ?
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 16 августа 2008 г. 12:04, спустя 38 минут 55 секунд

    Pasha, а где собственно класс Б?
    adw/0
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 16 августа 2008 г. 15:32, спустя 3 часа 27 минут 42 секунды

    Pasha, а где у класса Б метод Б? Вот когда будет, то обращайся "parent::b()" так как ты его наследуешь.
    adw/0
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 17 августа 2008 г. 5:37, спустя 14 часов 5 минут 2 секунды

    Вроде надо указать правильные пароль, имя бд, имя юзера, хост. Подключится к БД.

    оффтоп
    $this->ERRORS[] = array() — можно так $this->ERRORS[] = 'error';
    а потом ф-цией выводишь ошибки:

    public function get_errors()
    {
    foreach ($this->ERRORS as $error)
    {
    echo $error . '<br>' . "\n";
    }
    }
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 17 августа 2008 г. 6:03, спустя 25 минут 27 секунд

    забыл передать параметры goDB подключения к бд
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 17 августа 2008 г. 14:23, спустя 8 часов 20 минут 13 секунд

    Допустим есть два класса в отдельных файлах… есть мой класс… как мне их все скрестить между собой? чтобы в моем классе были доступны все функции тех классов?! аж стыдно спрашивать :(
  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 17 августа 2008 г. 16:43, спустя 2 часа 20 минут 36 секунд

    делегирование:

    class FooClass
    {
    public function func()
    {
    echo "I'm method FooClass::func()\n";
    }
    }

    class BarClass
    {
    private $foo;

    public function setFoo(FooClass $foo)
    {
    $this->foo = $foo;
    }

    public function func()
    {
    echo "I'm method BarClass::func()\n";
    $this->foo->func();
    }
    }

    $foo = new FooClass();
    $bar = new BarClass();
    $bar->setFoo($foo);
    $bar->func();
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 19 августа 2008 г. 9:16, спустя 1 день 16 часов 32 минуты

    Применил делегирование… присоединил два класса к своему… проблема… один класс передает параметры

    new goDB($db['host'], $db['user'], $db['password'], $db['name']);


    Как мне в своем классе эти параметры вызывать?

    class A {

    public function f() {
    print "А: Вызываем метод f()<br>";
    }

    public function g() {
    print "А: Вызываем метод g()<br>";
    }
    }

    class B {

    public function j() {
    print "B: Вызываем метод j()<br>";
    }

    }

    class C {

    private $_a;
    private $_b;

    public function __construct() {
    $this->_a = new A;
    $this->_b = new B;
    }

    public function f() {
    $this->_a->f();
    }

    public function j() {
    $this->_b->j();
    }

    public function g() {
    $this->_a->g();
    }

    public function y() {
    print "C: вызываем метод y()<br>";
    }
    }

    $obj = new C;
    $obj->f();
    $obj->j();
    $obj->g();
    $obj->y();


    Проста для примера

Пожалуйста, авторизуйтесь, чтобы написать комментарий!