Object-Oriented PHP CHAPTER 6 155 We then call operations the same way that we call other functions: by using their name and placing any parameters that they need in brackets. Because these operations belong to an object rather than normal functions, we need to specify to which object they belong. The object name is used in the same way as an object’s attributes as follows: $a-operation1(); $a-operation2(12, “test”); 6 OBJECT-ORIENTED PHP If our operations return something, we can capture that return data as follows: $x = $a-operation1(); $y = $a-operation2(12, “test”); Implementing Inheritance in PHP If our class is to be a subclass of another, you can use the. | Object-Oriented PHP 155 Chapter 6 We then call operations the same way that we call other functions by using their name and placing any parameters that they need in brackets. Because these operations belong to an object rather than normal functions we need to specify to which object they belong. The object name is used in the same way as an object s attributes as follows a- operation1 a- operation2 12 test If our operations return something we can capture that return data as follows x a- operation1 y a- operation2 12 test Implementing Inheritance in PHP If our class is to be a subclass of another you can use the extends keyword to specify this. The following code creates a class named B that inherits from some previously defined class named A. class B extends A var attribute2 function operation2 If the class A was declared as follows class A var attribute1 function operation1 all the following accesses to operations and attributes of an object of type B would be valid b new B b- operation1 b- attribute1 10 b- operation2 b- attribute2 10 6 Object-Oriented PHP Note that because class B extends class A we can refer to operation1 and attribute1 although these were declared in class A. As a subclass of A B has all the same functionality and data. In addition B has declared an attribute and an operation of its own. 156 Using PHP Part I It is important to note that inheritance only works in one direction. The subclass or child inherits features from its parent or superclass but the parent does not take on features of the child. This means that the last two lines in this code are wrong a new A a- operation1 a- attribute1 10 a- operation2 a- attribute2 10 The class A does not have an operation2 or an attribute2. Overriding We have shown a subclass declaring new attributes and operations. It is also valid and sometimes useful to redeclare the same attributes and operations. We might do this to give an attribute in the subclass a different default value to the same attribute