Task 7: A


When a modifier is set to private the property is only accessible by the class it's self.

When a modifier is set to protected the property is only accessible by the class it's self and
when the class is extended/inherited the subclass can also access the property.

When a modifier is set to Public the property is accessible from inside and outside the class.

Task 7: B


Setting a Public property value:
$InstanceOfObject->setProperty($NewValue);

Getting a Public property value:
$MyLocalVar = $InstanceOfObject->GetProperty();

Using a class constant outside the class it is defined:
As the constant is not part of an instantiated object but part of the class scope
you can use the Scope resolution operator as follow:
$MyLocalVar = ClassName::constName;

Task 7: C


An abstract class has all of the standard benefits of creating a baseclass that classes can inherit.
An abstract class is used mostly as a superclass/baseclass as it can not be used to directly
create an object. By using a concrete subclass that inherits the abstract class you can
now create an object from the concreate class that encapsulated the abstract class.
When you extend a abstract class you must always implement all abstract methods from the abstact class
or else you will get a fatal error.