Answers to Chapter 6

  1. "To make a variable shared across all objects of a given class, what keyword do you use" Static, of course!

  2. "Objects are always passed by reference: true or false" True as of PHP 5, which is what we're interested in. Yes, if you're a PHP 4 programmer you might disagree, but you should really be thinking in terms of PHP 5 at this point.

  3. "Given that dog is a class, poodle is a class inheriting from dog, and $poppy is an object of class poodle, would $poppy be considered an instance of the class dog when using the instanceof keyword" Yes.

  4. "To list all classes currently available to your script, what function should be used" The answer is "d": get_declared_classes().

  5. "Instanceof and is_subclass_of() are identical: true or false" The answer is "false": instanceof matches an object if it is of a class or descended from it, whereas is_subclass_of() only matches an object that is subclassed from the class.

  6. "Which of the following statements are true about interfaces" This is actually a multiple-selection question (note: which "statements are" true, not "statement is" true!"). You should have answered "a" and "b".

  7. "When must the "override" keyword be used" Whenever it's invented - there's no such keyword. As a result, the answer is "e", "Never".

  8. "Objects of an abstract class can only be created when the class is declared final: true or false" The answer is of course "false", but it's a trick question: abstract classes may not be declared final.


If this was helpful, please take a moment to tell others about Hacking with PHP by tweeting about it!

Next chapter: Answers to Chapter 7 >>

Previous chapter: Answers to Chapter 5

Jump to:


Home: Table of Contents

Copyright ©2015 Paul Hudson. Follow me: @twostraws.