Что означает передача имени класса в качестве параметра в функцию? - PullRequest
3 голосов
/ 21 ноября 2010

Я читаю Zend Framework, быстрый старт:

В классе Mapper есть функция:

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 нет ссылок.

1 Ответ

13 голосов
/ 21 ноября 2010

Это тип подсказки в действии.Функция save будет принимать только экземпляр Application_Model_Guestbook в качестве аргумента.Если вы попытаетесь передать что-то еще, PHP будет жаловаться.

...