---
title: "anropa metod i annan klass från klass"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/156395-anropa-metod-i-annan-klass-från-klass"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Prime_66"
published: "2007-01-24T22:45:33.000Z"
updated: "2007-01-25T12:50:18.000Z"
replies: 8
views: 624
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/156395-anropa-metod-i-annan-klass-från-klass"
---

# anropa metod i annan klass från klass

## #1 — Prime_66, 2007-01-24T22:45Z

Tja, hur gör man för att anropa en metod i klass2 från klass1? 
T.ex.

class Klass1{
 function f1(){
  //Här vill jag anropa f2
 }

}

class Klass2{
 function f2 ($id){
 }
}

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

## #2 — Duffer, 2007-01-25T00:28Z

// Här vill jag anropa f2
$objKlass2 = new Klass2();
$objKlass2-\>f2($id);
// Nu har jag anropat f2

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

## #3 — Prime_66, 2007-01-25T07:42Z

Jo fast om jag vill skriva det inuti klass 1, går det? T.ex. har jag en klass för felhantering av mysql-operationer. Och inuti klass1 körs mysql-operationer, jag kan alltså inte hoppa ur klassen och skriva som du gör. Låt oss säga att jag befinner mig i en funktion i klass 1 och därifrån vill jag komma åt en metod/funktion i klass2 utan att först avsluta funktionen i klass1.

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

## #4 — The_Hulk, 2007-01-25T07:50Z

antingen får du skapa en instans av klass2 där du vill använda den eller får du skapa den tidigare och skick in den som en parameter till det ställer där du vill anropa den.

```php
class Klass1
{
  function f1($k2)
  {
    //Här vill jag anropa f2
    $k2->f2();
  }

}

class Klass2
{
  function f2 ($id)
  {
  }
}

$kl2 = new Klass2();
$kl1 = new Klass1();
kl1->f1(&$kl2);
```

eller skicka in den som en parameter till konstruktorn i Klass1

```php
class Klass1
{
  var $k2;
  
  function Klass1($k2)
  {
    $this->k2 = $k2;
  }

  function f1()
  {
    //Här vill jag anropa f2
    $this->k2->f2();
  }

}

class Klass2
{
  function f2 ($id)
  {
  }
}

$kl2 = new Klass2();
$kl1 = new Klass1(&$k2);
kl1->f1();
```

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

## #5 — Duffer, 2007-01-25T12:19Z

Varför fungerar inte detta för dig?

```php
<?PHP
class klass1 {
	function klass1() {
		$objKlass2 = new Klass2();
		$objKlass2->skriv();
	}
}

class klass2 {
	function klass2() {
		
	}
	
	function skriv() {
		echo "hej hej";
	}
}

new klass1();
?>
```

 

Funkar fin fint utan att ha några parametrar..

EDIT! Koden i mitt första inlägg var ju naturligt vis menat att ligga där du skrev samma kommentar som jag använde i min kod, inte att det skulle vara sepparat utanför din klass och funktion!

Sorry om jag var otydlig

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

## #6 — Prime_66, 2007-01-25T12:23Z

Duffer..jo det funkar. Men problemet då blir att jag måste skapa klassen i varje funktion som använder den, eller hur. Samt att ja få felmeddelandet "Cannot redeclare class" eftersom jag jag använder denna användarhanteringsklassen på sidor som också använder felhanteringsklassen...hmm..men det smartaste är ju att skapa den som en var i klass1 så att den kan anropas från alla funktioner.

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

## #7 — Prime_66, 2007-01-25T12:28Z

Varför kan jag inte öra så här:
include("classes/error_handling/error_handling.php");

class user_handling{
var $errors = new error_handling;
}

borde väl funka. Och sen komma åt den med $this-\>error_handling();

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

## #8 — The_Hulk, 2007-01-25T12:33Z

det är ju ungefär samma som jag och Duffer har skrevit, du var nog lite otydlig när du förklara hur du vill ha det.

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

## #9 — Prime_66, 2007-01-25T12:50Z

Hehe..mm ja det är sant. Har nog varit lite otydlig. Men tack för hjälpen. Jag gjorde så här nu:

include("classes/error_handling/error_handling.php");

class user_handling{
var $errors; 
    function user_handling(){
   $this-\>errors = new error_handling;
    }

}

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

---

Tråden på webben: https://www.webforum.nu/amne/php/156395-anropa-metod-i-annan-klass-från-klass
