observable.class.php

来自「Ajax最流行书籍」· PHP 代码 · 共 111 行

PHP
111
字号
<?php/** * NAJAX Observable Namespace file. * * <p>This file defines the {@link NAJAX_Observable} Class.</p> * <p>This class is used internally only.</p> * * @author	Stanimir Angeloff * * @package	NAJAX * * @version	0.4.1.0 * *//** * NAJAX Observable Class. * * <p>This class is used to extend classes with events.</p> * <p>You should never use this class directly. Rather, * use the classes that extend this class.</p> * * @access		private * * @author		Stanimir Angeloff * * @package		NAJAX * * @version		0.4.1.0 * */class NAJAX_Observable{	/**	 *	 * @access	public	 *	 * @return	bool	 *	 */	function addObserver(&$observer, $className = 'NAJAX_Observable')	{		if (NAJAX_Utilities::getType($observer) != 'object') {			return false;		}		if ( ! is_subclass_of($observer, 'NAJAX_Observer')) {			return false;		}		if ( ! isset($GLOBALS['_NAJAX_OBSERVERS'])) {			$GLOBALS['_NAJAX_OBSERVERS'] = array();		}		$globalObservers =& $GLOBALS['_NAJAX_OBSERVERS'];		$className = strtolower($className);		if ( ! isset($globalObservers[$className])) {			$globalObservers[$className] = array();		}		$globalObservers[$className][] =& $observer;		return true;	}	/**	 *	 * @access	public	 *	 * @return	bool	 *	 */	function notifyObservers($event = 'default', $arg = null, $className = 'NAJAX_Observable')	{		if (empty($GLOBALS['_NAJAX_OBSERVERS'])) {			return true;		}		$globalObservers =& $GLOBALS['_NAJAX_OBSERVERS'];		$className = strtolower($className);		if (empty($globalObservers[$className])) {			return true;		}		$returnValue = true;		foreach ($globalObservers[$className] as $index => $observer) {			$eventValue = $observer->updateObserver($event, $arg);			if (NAJAX_Utilities::getType($eventValue) == 'bool') {				$returnValue &= $eventValue;			}		}		return $returnValue;	}}?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?