2010-11-21 8 views
3

私はZend Frameworkにクイックスタートを読んでいます:関数名の中でクラス名をパラメータとして渡すのは何ですか?

マッパークラスの機能があります:

public function save(Application_Model_Guestbook $guestbook) 
{ 
    $data = array(
     'email' => $guestbook->getEmail(), 
     'comment' => $guestbook->getComment(), 
     'created' => date('Y-m-d H:i:s'), 
    ); 

    if (null === ($id = $guestbook->getId())) { 
     unset($data['id']); 
     $this->getDbTable()->insert($data); 
    } else { 
     $this->getDbTable()->update($data, array('id = ?' => $id)); 
    } 
} 

私は、引数としてクラス名を持つことの意味や関連性を理解しない、また私が見ることができるが、どのようにphp5でphp.netのマニュアルに参照がないので許可されています。

+0

クイックメモ、あなたのタイトルはやや不正確です。おそらく、関数の宣言時にクラス名を指定するとどういう意味ですか? – Ali

答えて

12

これは、実際にヒントとして使用されています。関数saveは、引数としてApplication_Model_Guestbookのインスタンスのみを受け入れます。あなたが何か他のものを渡そうとすると、PHPは文句を言うでしょう。

http://php.net/manual/en/language.oop5.typehinting.php

関連する問題