opdracht van phptuts

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Rene janssen

rene janssen

21/11/2014 14:38:50
Quote Anchor link
Ik heb hier een functie van phptuts overgeschreven.
alleen werkt het niet zoals het zou moeten volgens phptuts.
Ik zit hier al een uur naar te kijken en heb het al een keer opnieuw geschreven.
Maar nog steeds zie ik niet waar ik de fout heb zitten.

Wie ziet de fout en nog belangrijker hoe vind je die.

Groet René

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
function totaal($bedragen, $btw = false)
{

    $ftotaal = array_sum($bedragen);
    
    if($btw)
    {

        $ftotaal *= 1.19;
    }

    
    return number_format($ftotaal, 2);
}


$bedragen = array(5.45, 9.95, 34.95);
echo 'totaal excl. btw: '.totaal($bedragen).'<br>';
echo 'totaal excl. btw: '.totaal($bedragen), true.'<br>';



?>
 
PHP hulp

PHP hulp

22/11/2024 18:02:13
 
Peter  Flos

Peter Flos

21/11/2014 14:42:52
Quote Anchor link
Wellicht bedoel je dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
function totaalincl($bedragen, $btw = true)
{

    $ftotaal = array_sum($bedragen);
    
    if($btw)
    {

        $ftotaal *= 1.19;
    }

    
    return number_format($ftotaal, 2);
}


$bedragen = array(5.45, 9.95, 34.95);
echo 'totaal incl. btw: '.totaalincl($bedragen).'<br>';
echo 'totaal excl. btw: '.array_sum($bedragen), true.'<br>';
?>

Edit: Kon korter, aangepast.
Gewijzigd op 21/11/2014 14:47:47 door Peter Flos
 
Rene janssen

rene janssen

21/11/2014 14:52:53
Quote Anchor link
Hoi Peter,
kun je ook aangeven wat anders aan is?
 
- Ariën  -
Beheerder

- Ariën -

21/11/2014 14:56:16
Quote Anchor link
BTW is standaard op true gezet.
 
Peter  Flos

Peter Flos

21/11/2014 14:56:33
Quote Anchor link
Zeker.

2 dingen:

- Je wilt de BTW inclusief en exclusief weten.
Exclusief BTW is in jouw geval het bedrag wat ingevuld wordt in de array van $bedragen. array_sum telt ze bij elkaar op.
Inclusief btw is in dit voorbeeld 19% meer (1.19). $btw stond op false, met true rekent hij die erbij. if($btw) was false, nu true. $ftotaal is dus de array_sum(Regel 4) * 1.19 = Bedrag inclusief btw ;)
 
Rene janssen

rene janssen

21/11/2014 15:03:38
Quote Anchor link
nu doet het script alleen incl btw
Ik bedoel eigenlijk.
De code heb ik van phptuts.
Deze heb ik overgeschreven met iets andere variabel namen.
De uitkomst is nu niet wat het volgens het orgineel script moet zijn.

Mijn vraag is nu: Wat heb ik in het bovenste scriptje anders gedaan. (want de uitkomst is niet het zelfde)
hier onder staat het orgineel scriptje van phptuts.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
// Functie definiëren
function calcTotaal($aBedragen, $bBtw = false)
{

    // Totaal van prijzen berekenen
    $fTotaal = array_sum($aBedragen);
    
    // Controleren of BTW berekend moet worden
    if($bBtw)
    {

        // Het totaal * 1.19 (19% BTW)
        $fTotaal *= 1.19;
    }

    
    // Geef het berekende totaal terug
    return number_format($fTotaal, 2);
}


// Functie aanroepen
$aBedragen = array(5.45, 9.95, 34.95);
echo 'Totaal excl. BTW: '.calcTotaal($aBedragen).'<br />';
echo 'Totaal incl. BTW: '.calcTotaal($aBedragen, true).'<br />';
?>
 
Peter  Flos

Peter Flos

21/11/2014 15:06:36
Quote Anchor link
$bBtw is nogsteeds false, want die is altijd false in je script.
 
Rene janssen

rene janssen

21/11/2014 15:10:52
Quote Anchor link
Beste Peter,
In het laatste scriptje is alles goed en werkt het zoals het hoort.
In het eerste scriptje is iets anders,want dit werkt niet zoals het hoort.
Waar heb ik een foutje gemaakt?
Kun je dat aangeven door b.v. het regelnr te noemen?
 
Peter  Flos

Peter Flos

21/11/2014 15:22:37
Quote Anchor link
Op regel 3 zeg je "$sBtw = false". Die is dus altijd false, dus zal er nooit BTW worden berekend.
Op regel 22 zeg je "$aBedragen, true". True is hier dus niet op zijn plaats omdat deze niet wordt gevraagd in de functie.
 
Dos Moonen

Dos Moonen

21/11/2014 15:50:37
Quote Anchor link
@Peter, Dat betekend niet dat $sBtw altijd false is. Dat betekend dat de default waarde van $sBtw false is. http://php.net/manual/en/functions.arguments.php#functions.arguments.default

@Rene
http://3v4l.org/KYWtn:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
function totaal($bedragen, $btw = false)
{

    $ftotaal = array_sum($bedragen);
    
    if($btw)
    {

        $ftotaal *= 1.19;
    }

    
    return number_format($ftotaal, 2);
}


$bedragen = array(5.45, 9.95, 34.95);
echo 'totaal excl. btw: '.totaal($bedragen).'<br>';
echo 'totaal excl. btw: '.totaal($bedragen), true.'<br>';

// 15-16 kunnen we ook zo schrijven:
echo 'totaal excl. btw: ';
echo totaal($bedragen);
echo '<br>';
echo 'totaal excl. btw: ';
echo totaal($bedragen);
echo true; //  het zelfde als echo '1';
echo '<br>';

?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
// Functie definiëren
function calcTotaal($aBedragen, $bBtw = false)
{

    // Totaal van prijzen berekenen
    $fTotaal = array_sum($aBedragen);
    
    // Controleren of BTW berekend moet worden
    if($bBtw)
    {

        // Het totaal * 1.19 (19% BTW)
        $fTotaal *= 1.19;
    }

    
    // Geef het berekende totaal terug
    return number_format($fTotaal, 2);
}


// Functie aanroepen
$aBedragen = array(5.45, 9.95, 34.95);
echo 'Totaal excl. BTW: '.calcTotaal($aBedragen).'<br />';
echo 'Totaal incl. BTW: '.calcTotaal($aBedragen, true).'<br />';

// 48-49 kunnen we ook zo schrijven:
echo 'Totaal excl. BTW: ';
echo calcTotaal($aBedragen);
echo '<br />';
echo 'Totaal incl. BTW: ';
echo calcTotaal($aBedragen, true);
echo '<br />';
?>
 
- SanThe -

- SanThe -

21/11/2014 16:00:36
Quote Anchor link
Rene janssen op 21/11/2014 14:38:50:
Wie ziet de fout en nog belangrijker hoe vind je die.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
function totaal($bedragen, $btw = false)
{

    $ftotaal = array_sum($bedragen);
    
    if($btw)
    {

        $ftotaal *= 1.19;
    }

    
    return number_format($ftotaal, 2);
}


$bedragen = array(5.45, 9.95, 34.95);
echo 'totaal excl. btw: '.totaal($bedragen).'<br>';
echo 'totaal excl. btw: '.totaal($bedragen), true.'<br>';
?>


Haakje staat verkeerd.
echo 'totaal excl. btw: '.totaal($bedragen), true.'<br>';
Moet zijn:
echo 'totaal excl. btw: '.totaal($bedragen, true).'<br>';
 
Willem vp

Willem vp

21/11/2014 16:17:09
Quote Anchor link
> Wie ziet de fout

Het script rekent met 19% BTW in plaats van met 21%. ;-)
 
Frank Nietbelangrijk

Frank Nietbelangrijk

21/11/2014 22:41:32
Quote Anchor link
Daarnaast bestaat er ook een 6% BTW tarief. Onder andere bouwbedrijven mogen tijdelijk het arbeidsloon met 6% BTW belasten maar het materiaal moet met 21% belast worden. Dit geeft dan een iets complexere rekenmethode.
 
Rene janssen

rene janssen

22/11/2014 09:30:30
Quote Anchor link
heel aardig van jullie allemaal om me zo te helpen.
Alleen krijg ik alleen van San The het antwoord waar ik eigenlijk om heb gevraagt.
Er zit een verschil tussen de twee scripts.

Het orginele en die ik heb gemaakt.
De orginele werkt goed en die ik heb gemaakt werkt niet helemaal goed (verkeerde waarden)
San The had al een foutje gevonden en nu zit er nog een in.
Ik tuur me er scheel op en nog zie ik het niet.
Vandaar mijn vraag aan jullie.

En ja willem 21% :-P
 
Frank Nietbelangrijk

Frank Nietbelangrijk

22/11/2014 10:02:10
Quote Anchor link
Wat heb je nu?
 
Rene janssen

rene janssen

22/11/2014 13:08:30
Quote Anchor link
Nu heb ik dat de uitkomst twee keer met btw is.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
function totaal($bedragen, $btw = true)
{

    $ftotaal = array_sum($bedragen);
    
    if($btw)
    {

        $ftotaal *= 1.19;
    }

    
    return number_format($ftotaal, 2);
}


$bedragen = array(5.45, 9.95, 34.95);
echo 'totaal excl. btw: '.totaal($bedragen).'<br>';
echo 'totaal incl. btw: '.totaal($bedragen, true).'<p>';
?>
 
Bart V B

Bart V B

22/11/2014 13:14:58
Quote Anchor link
$btw = false maken in je function.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
function totaal($bedragen, $btw = false)
{

    $ftotaal = array_sum($bedragen);
    
    if($btw)
    {

        $ftotaal *= 1.19;
    }

    
    return number_format($ftotaal, 2);
}


$bedragen = array(5.45, 9.95, 34.95);
echo 'totaal excl. btw: '.totaal($bedragen).'<br>';
echo 'totaal incl. btw: '.totaal($bedragen, true).'<p>';
?>
 
Rene janssen

rene janssen

22/11/2014 13:20:03
Quote Anchor link
@ bart, wat heb je veranderd?
 
- SanThe -

- SanThe -

22/11/2014 13:36:15
Quote Anchor link
Regel 2
 
Bart V B

Bart V B

22/11/2014 13:48:08
Quote Anchor link
Misschien is het een idee om in je php code precies aan te geven wat alles doet.
Dan raak je de weg niet kwijt. ;)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
// $bedragen is een array, standaard is $btw FALSE want we willen soms ook geen BTW berekenen.
function totaal($bedragen, $btw = false)
{

    // $totaal is een som van een array()
    $ftotaal = array_sum($bedragen);
    
    // als $btw TRUE word dan dit uitvoeren...
    if($btw)
    {

        // bereken BTW
        $ftotaal *= 1.19;
    }

    // We returnen in het juiste formaat het totaalbedrag
    return number_format($ftotaal, 2);
}


// maken van een array met de bedragen die we willen berekenen..
$bedragen = array(5.45, 9.95, 34.95);
// eerst willen we het bedrag zonder BTW zien
echo 'totaal excl. btw: '.totaal($bedragen).'<br>';
// hier het bedrag incl btw, daarom word het tweede argument van de function TRUE..
echo 'totaal incl. btw: '.totaal($bedragen, true).'<p>';
?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.