[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вопрос про ключ в массиве "наблюдателей
konstantin1985
Что означает $key в функции паттерна проектирования Observer , точнее в строке unset(self::$_attached[$eventName][$key]);?
Ведь в массиве _attached хранится связка eventName - $function.
И отсоединяется Observer-функция конкретного события $eventName. Значит $eventName - не ключ?
static public function attach($eventName, $function)
{
self::$_attached[$eventName][] = $function;
}

/**
* Detach observer
*
@param string $eventName event name
*
@param string $function function name
*
*
<code>
* $function = 'my_function';
* // Detach observer $function from event 'Class.onBeforeDelete'
* Core_Event::detach('Class.onBeforeDelete', $function);
*
</code>
*/
static public function detach($eventName, $function)
{
if (isset(self::$_attached[$eventName]))
{
foreach (self::$_attached[$eventName] AS $key => $value)
{
if ($function === $value)
{
unset(self::$_attached[$eventName][$key]);
}
}
}
}
T1grOK
К каждому событию можно привязать несколько функций, поэтому self::$_attached[$eventName] является массивом.

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
Быстрый ответ:

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