---
title: "Variabler i klass"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/175676-variabler-i-klass"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "learn"
published: "2008-12-03T16:34:02.000Z"
updated: "2008-12-08T16:03:52.000Z"
replies: 5
views: 430
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/175676-variabler-i-klass"
---

# Variabler i klass

## #1 — learn, 2008-12-03T16:34Z

Jag håller på att skriva en klass i PHP och är nybörjare.

Vad jag har förstått ska de variabler som används i klassen deklareras i början av klassen (t.ex. "private $var;") och sedan "anropas" m.h.a. $this. Men om en variabel bara ska användas inuti en metod, t.ex. i en for-loop...

```php
// En metod i klassen
function min_metod() {

    for($i=0; $i<$id; $i++) {

        // jadajada

    }

}
```

...ska jag även då deklarera denna (i detta fall $i)...?

Om inte, bör jag radera den "tillfälliga" variabeln när den använts klart (unset($i))?

Hur ska jag tänka?

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

## #2 — jme, 2008-12-03T17:03Z

Du deklarerar $i i for-loopen ($i = 0).

Jag brukar deklarera variabler inuti funktioner iaf för läsbarhetens skull.

Detta fungerar dock:

```php
	public function bar()
	{
		$var = true;
		if($var == true)
		{
			$b = 10;
		}
		else
		{
			$b = 5;
		}
		
		echo $b; // 10
	}
```

Men se upp:

```php
	public function foo()
	{
		$var = false;
		if($var == true)
		{
			$b = 10;
		}
		
		echo $b; // nu är $b inte deklarerad
	}
```

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

## #3 — learn, 2008-12-03T17:28Z

Så hur ser "grundregeln" ut för vad som ska deklareras i början av klassen och sedan "anropas" via $this?

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

## #4 — jme, 2008-12-03T18:05Z

Well, saker som t ex definierar klassen.

Vi kan ta ett exempel, människan. Människan privata variabler skulle kunna vara:

\- age
\- gender
\- height
\- nationality

```php
class Human
{
	private $age;
	private $height;
	private $weight;
	private $gender;
	
	public function setAge($age)
	{
		$this->age = $age;
	}
	
	public function getAge()
	{
		return $this->age;
	}
	
	// osv
}
```

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

## #5 — spango, 2008-12-04T17:36Z

> **learn skrev:**
>
> Så hur ser "grundregeln" ut för vad som ska deklareras i början av klassen och sedan "anropas" via $this?

Det är väldigt enkelt att definiera, och jag tänker citera dig direkt: *om en variabel bara ska användas inuti en metod, t.ex. i en for-loop* ska den vara deklarerad i metoden. Eller kanske mer exakt, om den bara används av ett anrop av en metod.

Generellt gäller att man ska försöka hålla deklarationer så lokala som möjligt, eftersom det gör koden mer förståelig. Exempelvis, deklarerar du $i som en medlem i klassen går det inte att avgöra om min_metod får några bieffekter eller inte genom att bara titta på själva metoden, du måste gå igenom hela klassen för att kunna avgöra det.

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

## #6 — learn, 2008-12-08T16:03Z

Nu hänger jag med. Tack jme och spango!

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

---

Tråden på webben: https://www.webforum.nu/amne/php/175676-variabler-i-klass
