---
title: "Valfritt ange argument för funktion i klass"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/160938-valfritt-ange-argument-för-funktion-i-klass"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Helmertz"
published: "2007-05-30T14:45:53.000Z"
updated: "2007-06-01T12:03:55.000Z"
replies: 5
views: 442
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/160938-valfritt-ange-argument-för-funktion-i-klass"
---

# Valfritt ange argument för funktion i klass

## #1 — Helmertz, 2007-05-30T14:45Z

```php
class test{
	function testa($b = 3, $c = true, $d = "4a"){
		print "b: $b, c: $c, d: $d";
	}
}
```

Hur bär jag mig åt för att ha dessa argument som standard, men låta möjligheten att ändra dem finnas genom direkt anrop i funktionen? Jämför $test-\>testa(); med $test-\>testa(2, false, 3a). Egentlig fråga: för att använda några av standardvärdena (t.ex. $b och $c men inte $d), hur anropas denna funktion då?

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

## #2 — Helmertz, 2007-05-30T15:23Z

Hittade en [artikel hos Zend](http://devzone.zend.com/node/view/id/637) om detta men tycker det verkar omständigt att använda func_num_args() och func_get_args(). I artikeln nämns inte något sätt att fördefinera endast ett/ett par argument för funktionen.

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

## #3 — aasah, 2007-05-30T18:38Z

> **Helmertz skrev:**
>
> ```php
> class test{
> 	function testa($b = 3, $c = true, $d = "4a"){
> 		print "b: $b, c: $c, d: $d";
> 	}
> }
> ```
>
>  Egentlig fråga: för att använda några av standardvärdena (t.ex. $b och $c men inte $d), hur anropas denna funktion då?

```php
$test = new test();
$test->testa(1, false, "d"); 
// ger b: 1, c: , d: d
$test->testa(1, false); 
// ger b: 1, c: , d: 4a
$test->testa(1); 
// ger b: 1, c: 1, d: 4a
$test->testa(); 
// ger b: 3, c: 1, d: 4a
```

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

## #4 — Helmertz, 2007-05-31T16:04Z

Hur gör man om man vill använda standard för $d men inte för $b? Måste man ange argumenten i en ordning där standardargumenten kommer i slutet?

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

## #5 — aasah, 2007-05-31T20:21Z

**Hur gör man om man vill använda standard för $d men inte för $b?** 
Det är lätt, se mitt exempel ovan. Motsatsen går däremot inte.

**Måste man ange argumenten i en ordning där standardargumenten kommer i slutet?**
Ja.

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

## #6 — Helmertz, 2007-06-01T12:03Z

> **aasah skrev:**
>
> \[...\]Motsatsen går däremot inte.
> 
> **Måste man ange argumenten i en ordning där standardargumenten kommer i slutet?**
> Ja.

Precis det jag ville veta, tackar.

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

---

Tråden på webben: https://www.webforum.nu/amne/php/160938-valfritt-ange-argument-för-funktion-i-klass
