Вопрос обработки исключений классов php - PullRequest
4 голосов
/ 10 марта 2010

Есть открытая книга викторины для заявления о работе, которую я делаю, и она, очевидно, высветила недостаток в моих знаниях php.

Заметьте, я не спрашиваю ответ напрямую, я прошу показать, что я неправильно понимаю / не знаю, как на него ответить. Вопрос:

3. Finish the following class to print "Person->name has been zapped" when the 
following is executed on a Person object: print $person;


class Person{
  private $name = '';
  public function __construct($name){
    $this->name = $name;
  }
}

$person = new Person('fred');
print $person; // fred has been zapped

Теперь, либо есть какой-то способ добавления обработки исключений в класс (хотя я бы подумал, что «print» - это то, что вызывает исключение, или я просто неправильно понимаю вопрос. Я знаю (из быстрого теста) ) что при печати в try..catch все равно происходит сбой программы с «поддающейся проверке фатальной ошибкой» (мой улов не сработал).

Что я должен читать?

David

Ответы [ 2 ]

4 голосов
/ 10 марта 2010

Хм, звучит так, будто они ищут ваши знания классов PHP5. Я бы посоветовал взглянуть на магические методы PHP , чтобы лучше понять, как выполнить то, что вы пытаетесь сделать.

По сути, вы ищете печатное представление рассматриваемого объекта.

3 голосов
/ 10 марта 2010

Когда вы пытаетесь отобразить / вывести объект, вызывается магический метод __ toString () - если он определен для класса, экземпляром которого является объект.

Здесь вам нужно изменить класс, чтобы добавить определение этого метода __toString, который будет возвращать имя, и часть строки " zapped " строки:

class Person{
  private $name = '';
  public function __construct($name){
    $this->name = $name;
  }
  public function __toString() {
    return $this->name . ' has been zapped';
  }
}

$person = new Person('fred');
print $person; // fred has been zapped

И вы получите ожидаемый результат:

fred has been zapped
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...