2011年4月23日

[PHP-users 35554]初期化した配列のキーについて質問させてください

質問させてください。

((AuthController.php))

public function loginAction()
{
$request = $this->getRequest();
$auth = Zend_Auth::getInstance();

if ($auth->hasIdentity()) {
$this->_redirect($this->view->serverUrl().$this->view->url(array(),
'core_dashboard_index'));
}
if ($request->isPost()) {
$username = $request->getPost('username');
$password = $request->getPost('password');
$adapter = new Core_Services_Auth($username, $password);
$result = $auth->authenticate($adapter);
switch ($result->getCode()) {
/**
* Logged in successfully
*/
case Core_Services_Auth::SUCCESS:
$user = $auth->getIdentity();

Hook_Registry::getInstance()->executeAction('Core_Auth_Login_LoginSuccess',
$user); //
★A
$this->_redirect($this->view->serverUrl() . $this->view->url(array(),
'core_dashboard_index'));
break;

((Registry.php))

class Hook_Registry
{
const HOOKS = 'Tomato_Hook_Registry';
private static $_instance;
/**
* @var array
*/
private static $_hooks;
public static function getInstance()
{
if (null == self::$_instance) {
self::$_instance = new self();
}
return self::$_instance;
}
private function __construct()
{
self::$_hooks = array();
}

/**
* Run action
*
* @param $actionName
* @param $args
* @return void
*/
public function executeAction($name, $args = array())
{
$hooks = self::$_hooks;
if (!array_key_exists($name, $hooks)) { //★B
return;
}
if (!is_array($hooks[$name])) {
throw new Exception('There is not hook for ' . $name ."\n");
return;
}
foreach ($hooks[$name] as $index => $hookArray) {
foreach ($hookArray as $key => $hook) {


と2つのファイルあります。

ここで、★Aの部分が分からないのですが、Hook_Registryクラスにてインスタン
スを作成し、コンストラクタにて$_hooksを配列へ初期化しています。
それがexecuteAction内の★B部などでは$hooks内に$name要素が無ければエラー処
理とかあります。
これはどういう事なのでしょうか?
$hooksという初期化した変数(配列)内には現在何も入っていないと思うのです
が、キーを持つかどうかで判別しているのは何故なのでしょうか?

_______________________________________________
PHP-users mailing list PHP-users@xxxxx
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3


投稿者 xml-rpc : 2011年4月23日 10:00
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/103409
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。