[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Передача данных ООП
Гость_Jallvar
Ребят, помогите. пожалуйста.
2 класса
Core и Core_objects

class Core extends Core_objects

функцией add_point вызываем метод класса core_objects
function add_point($hook, $object)
{
$core_objects = new Core_objects;
$core_objects->add_point($hook, $object);
}


class Core_objects {
private $points = array();

public function add_point($hook, $object)
{
$this->points[][$hook] = $object;
}

public function get_points()
{
print_r($this->points);
return $this->points;
}
}


Есть аналогичная функция get_points вызывает метод get_points
Проблема в сл. вывожу после занесения данных в массив, данные занеслись. Но, когда я их пытаюсь получить. Метод get_points выводит пустой массив.
Гость_Jallvar
т.е. класс Core_objects является посредником!
twin
В разных функциях разные объекты. А для чего их в функции заворачивать?

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Guest
что-то вроде создаю записи о загруженных плагинов. т.е. сам плагин сообщает, где ему надо разместиться и какие данные получить.
Как это исправить?
twin
Убрать функции. Для чего они?
Ну или засунуть все в статическй класс и сделать синглтон. Или регистрацию объекта. Только это говнокодинг какой то. Столько лишних телодвижений... Почему нельзя сразу вызвать метод Core_objects без всяких функций?

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Michael
Гость_Jallvar , объект - это та же переменная. В твоей функции add_point, ты эту переменную создал и потерял. Напиши внутри:
return $core_objects;

и дальше в потоке вызова функций, сможешь использовать этот объект. Вызвать для него get_points например.


_____________
There never was a struggle in the soul of a good man that was not hard
Rand
Michael
Тогда при каждом вызове функции будет создаваться и возвращаться новый объект. Думаю, лучше сделать статические методы:
class Core_objects {
private static $points = array();

public static function add_point($hook, $object)
{
static::$points[][$hook] = $object;
}

public static function get_points()
{
print_r(static::$points);
return static::$points;
}
}
И вызывать потом Core_objects::add_point($hook, $object);
Guest
Спасибо, большое. Этот гавно коддинг нужен, потому, что плагины являются функциями. И наиболее простой способ
Guest
Fatal error: Cannot access property Core::$points in Z:\home\accords.ru\www\application\libraries\core_objects.php on line 13
Guest
Все поправил
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.