---
title: "class extends"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/192016-class-extends"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "grennfox"
published: "2014-02-19T09:13:14.000Z"
updated: "2014-02-19T10:13:57.000Z"
replies: 2
views: 827
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/192016-class-extends"
---

# class extends

## #1 — grennfox, 2014-02-19T09:13Z

Hallå

Jag håller på att försöka lära mig det här med class extends, men har kört fast lite här nu.

Så om jag har en kod som ser ut som följande:
page.php

```php
class Page{
protected $hello
function __construct(){
     $this->hello = 'hello';
}
}
```

view.php

```php
class View extends Page{
function __construct(){
     echo $this->hello;
}
}
```

När den här koden körs så händer ingenting, men jag läste något om att om man har en \__construct i en klass som ärver så måste man även köra parent:: \__construct eller något liknande för att kunna komma åt variabel i huvud klassen.

Men det som ställer till det i mitt huvud är att den klassen körs redan från en annan sida. Blir det inte någon krock då?

Skulle någon vänlig själ vilja förklara detta för mig?

Tackar så mycket på förhand :)

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

## #2 — casca, 2014-02-19T10:06Z

\__construct() är PHP klass-konstruktor, dvs. den funktion som alltid körs när du skapar ett nytt objekt av klassen. Men om du inte skapar en konstruktor så skapas ju ändå objektet! Det är för att du genom att skapa din egen explicita konstruktor själv definierar hur du vill initiera objekt.'

"Extends" är PHPs nyckelord för att ärva, så i din definition säger du "View *ärver* Page och alla dess metoder och variabler", men konstruktorn är fortfarande explicit satt eftersom du definierar en sådan metod.

"parent::" betyder att du vill accessa "förälderns", dvs. klassen du ärvers, metod, och i detta fall innebär det att du begär att köra Pages konstruktor. Därför skrivs inget ut om du inte anropar parent::\__construct().

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

## #3 — grennfox, 2014-02-19T10:13Z

aha då blev jag lite klokare :) Tackar så mycket för ett snabbt och bra svar :)

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

---

Tråden på webben: https://www.webforum.nu/amne/php/192016-class-extends
