2016-12-02 2 views
0

Ich habe eine Funktion alsPHP: Funktion mit unbekanntem Parametertyp

public function calculateAge() 
{ 
// do calcualtions here 
} 

und diese Funktion soll ein Objekt als Argument akzeptieren, aber andere Art. Zum Beispiel,

Wie Sie sehen können, versuche ich Hund Objekt und Katze Objekt an die Funktion übergeben. Wie kann die calculateAge-Funktion so definiert werden, dass sie ein anderes Objekt als Argument verwendet? Wie kann ich eine Funktion schreiben, die einen unbekannten Parametertyp verwendet?

+0

Warum die Funktion nicht haben? –

+8

Machen Sie Ihre Hunde- und Katzen-Klassen erweitern eine gemeinsame Schnittstelle (z. B. "Animal"), und typhintint zu dieser Schnittstelle –

+2

Sie sollten wirklich Ihre eigenen Hausaufgaben machen – RiggsFolly

Antwort

0

Ich denke in Ihrem Fall müssen Sie sicherstellen, dass Ihre Funktion calculateAge in der Lage ist, das Alter des übergebenen Objekts zu berechnen. Zum Beispiel, um das Alter des Objekts zu berechnen (es scheint, dass es ein Tier :) ist), Ihre Funktion calculateAge weiß, dass, was auch immer der Typ des Objekts, hat es eine Methode namens getAge, die den Job erledigt. Alles, was Sie in calculateAge tun müssen, ist getAge des übergebenen Objekts aufrufen.

Sie können dies zum Beispiel: in der Klasse

interface Animal 
{ 
    public function getAge(); 
} 

// The same thing for the class Dog 
class Cat implements Animal 
{ 
    public function getAge() 
    { 
      // code to calculate age 
    } 
    ... 
} 

public function calculateAge(Animal $animal) 
{ 
    echo $animal->getAge(); 
} 

$dog = new Dog(); 
calculateAge($dog); 

$cat = new Cat(); 
calculateAge($cat); 
Verwandte Themen