---
title: "Anropa funktion från en annan funktion"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/89807-anropa-funktion-från-en-annan-funktion"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Web-Tor"
published: "2003-11-06T09:00:41.000Z"
updated: "2003-11-06T17:38:34.000Z"
replies: 6
views: 1623
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/89807-anropa-funktion-från-en-annan-funktion"
---

# Anropa funktion från en annan funktion

## #1 — Web-Tor, 2003-11-06T09:00Z

Jag har en kundvagn. I kundvagnsklassen har jag en funktion som returnerar totalpriset enligt följande:

```php
<?
function showTotal($d){
  foreach ($_SESSION['cart'] as $item => $p)
    $price += $_SESSION['cart'][$item]['totalPrice'];

  // ** Rabatt vid förskottbetalning
  if ($d){
    $price *= 0.9

  return $price;
}
?>
```

För att få priser i rätt format använder jag en annan funktion på andra ställen på sidan ([se den här tråden](http://www.webforum.nu/showthread.php?s=&postid=742456#post742456)).

```php
<?
function showPrice($price, $d){
  // ** Rabatt vid förskottbetalning
  $f = 0.9;

  // ** Räknar ut förskottspris
  if ($d)
    $price*=$f;

  // ** Rätt antal decimaler
  if (ereg("\\.",$price))
    $price = number_format($price, 2);

return $price;
}
?>
```

Nu vill jag använda anropa **showPrice**\-funktionen från **showTotal**\-funktionen för att även få totalpriset i rätt format men jag kan inte få det att funka. Förslag?

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

## #2 — ThACRoW, 2003-11-06T09:53Z

Prova detta istället för "fullösningen":

```
if (intval($price) == $price) {
    // $price är heltal
}
```

Angående din fråga så har jag inte en clue.

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

## #3 — Web-Tor, 2003-11-06T10:07Z

Tack! Det funkar bra. Så här blir det då:

```php
<?
function showPrice($price, $d){
	// ** Rabatt vid förskottbetalning
	$f = 0.9;
	// ** Räknar ut förskottspris
	if ($d)
		$price*=$f;
	// ** Rätt antal decimaler
	if (!(intval($price) == $price))
		$price = number_format($price, 2);

	return $price;
}
?>
```

Men som sagt - grundfrågan kvarstår...

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

## #4 — Matte, 2003-11-06T12:15Z

Tycker det borde funka med:

```php
function showTotal($d){
  foreach ($_SESSION['cart'] as $item => $p)
    $price += $_SESSION['cart'][$item]['totalPrice'];

  // ** Rabatt vid förskottbetalning
  if ($d){
    $price *= 0.9
  }

  $price = showPrice($price, false);

  return $price;
}
```

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

## #5 — Web-Tor, 2003-11-06T12:35Z

Jag visste väl att det inte skulle va så svårt. :)
sä här blev det nu:

```php
<?
function showTotal($d){
	foreach ($_SESSION['cart'] as $item => $p)
		$price += $_SESSION['cart'][$item]['totalPrice'];
	$price = showPrice($price, $d);
	return $price;
}

function showPrice($price, $d){
	// ** Rabatt vid förskottbetalning
	$f = 0.9;
	// ** Räknar ut förskottspris
	if ($d)
		$price*=$f;
	// ** Rätt antal decimaler
	if (!(intval($price) == $price))
		$price = number_format($price, 2);

	return $price;
}
?>
```

Jag hade försökt på liknande sätt tidigare men jag missade en grej när jag ropade på funktionen:

```php
<?
showPrice($price, $d); // Fel
$price = showPrice($price, $d); // Rätt
?>
```

Tack!

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

## #6 — Matte, 2003-11-06T14:36Z

Det borde t.o.m. gå att returnera direkt, utan att lägga i variabeln:

```php
return showPrice($price, $d);
```

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

## #7 — Web-Tor, 2003-11-06T17:38Z

Jodå, det funkade det också. Tack!

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

---

Tråden på webben: https://www.webforum.nu/amne/php/89807-anropa-funktion-från-en-annan-funktion
