---
title: "Skicka med variabler i funktion... ibland"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/124467-skicka-med-variabler-i-funktion-ibland"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "nkrantz"
published: "2005-03-16T11:52:20.000Z"
updated: "2005-03-16T21:48:36.000Z"
replies: 7
views: 241
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/124467-skicka-med-variabler-i-funktion-ibland"
---

# Skicka med variabler i funktion... ibland

## #1 — nkrantz, 2005-03-16T11:52Z

Hej,

Man kan ju definiera indata till funktioner i samband med att man skapar functionen. Typ: function funkNamn($foo = "bar"); Så som jag förstått det så tilldelas $foo "bar" om det är så att $foo inte definieras i anropet.

Men, jag får pase error på följande class:

```php
class Admin_Group
{
	var $tbl_name;
	var $primary;
	
	function Admin_Group()
	{
		$this->tbl_name = "tbl_name";
		$this->primary = "primary_id";
	}

	function print_selector($option = "", $name = $this->primary)
{
.
.
.
.
.
.
.
```

Felkoden kommer på raden där print_selector finns och om jag tar bort $this-\>primary så funkar det, så jag misstänker att det är den privata variabeln som spökar.

Hur löser jag detta?

// Nippe

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

## #2 — pimme, 2005-03-16T16:32Z

```php
function print_selector($option = "", $name = false){
if(!$name) $name = $this->primary;
.
.
.
```

if(!$name) kan du byta ut till if($name === false) om du vill att $name ska kunna vara "0" eller liknande.

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

## #3 — nkrantz, 2005-03-16T16:36Z

Jo, så kan man ju göra, men varför funkar det inte att kalla på den privata variabeln i funtionen?

// Nippe

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

## #4 — pimme, 2005-03-16T16:54Z

Jag vet inte, men gissar på att det inte går för att $this-\>name inte är konstant. Du kan inte heller skriva t.ex function a($b = $\_POST\['b'\])  (om jag nu inte minns helt fel, var ett tag sen jag försökte).

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

## #5 — nkrantz, 2005-03-16T20:48Z

Ah, där kanske vi har svaret! Fast det skumma är ju att $this-\>name deklareras i konstruktorn som skapar objektet innan funktionen kallas...

Nåja, får väl lösa det på annat sätt!

// Nippe

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

## #6 — pimme, 2005-03-16T20:50Z

> **nkrantz skrev:**
>
> Ah, där kanske vi har svaret! Fast det skumma är ju att $this-\>name deklareras i konstruktorn som skapar objektet innan funktionen kallas...

Jo, men det är inte en konstant i koden/klassen utan endast konstant i objektet. Alltså det kan ju variera från objekt till objekt, medan "abc" är ju konstant hela tiden, om du förstår vad jag menar.  :)

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

## #7 — nkrantz, 2005-03-16T20:54Z

Jo, men i sådana fall skulle man ju kunna argumentera att en in-variabel i ett funktionsanrop inte heller är konstant... Om jag skulle göra så att jag har en funktion som först hämtar värdet som $this-\>name har innan jag anropar funktionen och sedan lägger in det som in-parametervärde så skulle det ju funka...

Men nåja... ;)

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

## #8 — pimme, 2005-03-16T21:48Z

Jo, men min gissning var att om du har ett defaultvärde på en parameter så ska det vara konstant, men det är som sagt en gissning.

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

---

Tråden på webben: https://www.webforum.nu/amne/php/124467-skicka-med-variabler-i-funktion-ibland
