1: |
How would you declare a class called emptyClass() that has no methods or properties?
|
2: |
Given a class called emptyClass(), how would you create an object that is an instance of it?
|
3: |
How can you declare a property within a class?
|
4: |
How would you choose a name for a constructor method?
|
5: |
How would you prevent a method from being accessed except from within the current class and child classes?
|
6: |
How would you create a private method in PHP 4?
|
7: |
How can you access and set properties or methods from within a class?
|
8: |
How would you access an object's properties and methods from outside the object's class?
|
9: |
What should you add to a class definition if you want to make it inherit functionality from another class?
|
| |
A1:
| You can declare a class with the class keyword:
class emptyClass {
}
|
| |
A2:
| You should use the new operator to instantiate an object:
$obj = new emptyClass( );
|
| |
A3:
| In PHP 4, you can declare a property using the var keyword:
class Point {
// properties
var $x = 0;
var $y = 0;
}
Using PHP 5, you can also use the private, protected, or public keywords. |
| |
A4:
| A constructor must either take the name of the class that contains it (for PHP 4 compatibility) or it should be named ___construct(). |
| |
A5:
| You can limit the availability of a method to the current class and child classes by using the protected keyword:
protected function dontTouchMe( ) {
// no access outside current class and children
}
|
| |
A6:
| There is no way of enforcing privacy in PHP 4. There is, however, a convention that functions beginning with an underscore character should be treated as private:
function _pleaseDontTouchMe () {
// not enforceable
}
|
| |
A7:
| Within a class, you can access a property or method by combining the $this variable and the -> operator:
class Point {
// properties
public $x = 0;
public $y = 0;
// constructor
function ___construct( $x, $y ) {
// calling a method
$this->moveTo( $x, $y );
}
// method
public function moveTo( $x, $y ) {
// setting properties
$this->x = $x;
$this->y = $y;
}
}
|
| |
A8:
| You can call an object's methods and access its properties using a reference to the object (usually stored in a variable) in conjunction with the -> operator:
// instantiating an object
$p = new Point( 40, 60 );
// calling an object's method
$p->moveTo( 20, 200 );
// accessing an object's property
print $p->x;
|
| |
A9:
| For a class to inherit from another, it must be declared with the extends keyword and the name of the class from which you want to inherit:
class funkyPoint extends Point {
}
|