---
title: "klass ärvning"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/137750-klass-ärvning"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "The_Hulk"
published: "2005-11-16T14:19:52.000Z"
updated: "2005-11-16T15:08:43.000Z"
replies: 1
views: 273
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/137750-klass-ärvning"
---

# klass ärvning

## #1 — The_Hulk, 2005-11-16T14:19Z

Hej!

Om jag har klasserna A och B, B ärver från A.
Om jag vill skicka vidare argumenten från B:s konstruktor, vilket är bäst att lösa det på, alt 1 eller alt 2? Under förutsättning att inte A:s konstruktor gör något annat med argumentet.

```php
class A
{
    var $my_text;

    function A($text)
    {
        // do something with $text
        $this->my_text = $text;
    }
}

class B extends A
{
    function B($text)
    {
        parent::A($text); // alt 1
        // or
        $this->my_text = $text; // alt 2
    }
}
```

Tack på förhand!

Permalänk: https://www.webforum.nu/p/137750

## #2 — spango, 2005-11-16T15:08Z

Beror på. Vill du i klass B vara säker på att allt initieras som i A, ska du använda alt. 1. Vill du å andra sidan vara säker på att det enda som händer i konstruktorn är att my_text får ett värde är alt. 2 att föredra. I den riktiga världen är det i princip bara alt. 1 som används, eftersom det är ganska sopig OO att utgå ifrån att man vet vad som händer inuti en annan metod.

I en del språk (främst hårt typade och kompilerade språk som C++, Java, C# etc) måste man anropa en konstruktor i föräldraklassen oavsett vad man gör, så där är problemet på sätt och vis löst, men i språk som inte kräver det anses det allmänt vara god ton att anropa en parent-konstruktor för att man ska vara säker på att superklassdelen är korrekt initialiserad.

Permalänk: https://www.webforum.nu/p/1711316

---

Tråden på webben: https://www.webforum.nu/amne/php/137750-klass-ärvning
