[php] naam van array-element meegeven in functie

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik wil graag via een functie de naam van het array element meegeven, echt dit werkt niet:

code:
1
2
3
4
5
6
7
8
function product_subtotaal($product,$naam)
{
    if ($product != "" || $product != "0") {

    $subtotal_count['$naam'] = ($product*5.75);
    }
    return;
}

en als aanroep
code:
1
product_subtotaal($product11,"product11");

dit werkt uiteraard niet volgens mij omdat hij een variabel als aanroep verwacht, verder zal hij uiteraard door de single quotes in $subtotal_count['$naam'] uiteraard het zien als $naam ipv de waarde van $naam, hoe los ik echter nu dit probleem op? Ik kan niets in de literatuur vinden ..

[ Voor 13% gewijzigd door Verwijderd op 07-11-2004 15:14 ]


Acties:
  • 0 Henk 'm!

  • PowerSp00n
  • Registratie: Februari 2002
  • Laatst online: 19-08 08:24

PowerSp00n

There is no spoon

Met welk doel? Volgensmij wat jij wil bereiken kun je dan beter met het volgende doen: http://www.php.net/manual/en/language.references.php

[edit[ Trouwens. Het volgende zal altijd false zijn volgensmij:

PHP:
1
    if ($product != "" || $product != "0") {

[ Voor 32% gewijzigd door PowerSp00n op 07-11-2004 15:15 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
PowerSp00n schreef op 07 november 2004 @ 15:14:
Met welk doel? Volgensmij wat jij wil bereiken kun je dan beter met het volgende doen: http://www.php.net/manual/en/language.references.php
ik wil later elementen uit de array subtotal_count kunnen aanroepen op productnaam ..

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
[edit[ Trouwens. Het volgende zal altijd false zijn volgensmij:

PHP:
1
    if ($product != "" || $product != "0") {
klopt even aanpassen moet uiteraard && zijn

[ Voor 10% gewijzigd door Verwijderd op 07-11-2004 15:20 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op 07 november 2004 @ 15:13:

dit werkt uiteraard niet volgens mij omdat hij een variabel als aanroep verwacht, verder zal hij uiteraard door de single quotes in $subtotal_count['$naam'] uiteraard het zien als $naam ipv de waarde van $naam, hoe los ik echter nu dit probleem op? Ik kan niets in de literatuur vinden ..
De quotes weglaten bijvoorbeeld.

Verder doet de functie effectief gezien vrij weinig. Je moet rekening houden met de scope van die functie. De enige variabelen die daar bestaan zijn die je als argumenten meegeeft, die je als globals "importeert" en die in de superglobals staan. Je krijgt dus 100% zeker te maken met het feit dat $subtotaal_count niet bestaat en dat er al helemaal geen index $naam in die niet-bestaande array zit.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op 07 november 2004 @ 15:20:
[...]

De quotes weglaten bijvoorbeeld.

Verder doet de functie effectief gezien vrij weinig. Je moet rekening houden met de scope van die functie. De enige variabelen die daar bestaan zijn die je als argumenten meegeeft, die je als globals "importeert" en die in de superglobals staan. Je krijgt dus 100% zeker te maken met het feit dat $subtotaal_count niet bestaat en dat er al helemaal geen index $naam in die niet-bestaande array zit.
inderdaad het global probleem bedenk ik met net, en door er global voor te zetten?

code:
1
2
3
4
5
6
7
8
function product_subtotaal($product,$naam)
{
    if ($product != "" && $product != "0") {

    global $subtotal_count[$naam] = ($product*5.75);
    }
    return;
}

Acties:
  • 0 Henk 'm!

  • Koeniepoenie
  • Registratie: Oktober 2003
  • Laatst online: 15-09 21:46
Je moet dan wel de hele variabele global maken, en het handigst is als je dit in het begin van je functie doet:
PHP:
1
2
3
4
5
6
function product_subtotaal($product,$naam) {
    global $subtotal_count;
    if ($product != "" || $product != "0") {
        $subtotal_count[$naam] = $product * 5.75;
    }
}

Parse error: syntax error, unexpected GOT_USER in https://gathering.tweakers.net on line 1337


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
prima werkt als een trein! bedankt! nu kan ik hier weer mooi op verder bouwen.

code:
1
2
3
4
5
6
7
8
9
10
11
function product_subtotaal($product,$naam,$price)
{
    
    global $subtotal_count;

    if ($product != "" && $product != "0") {

    $subtotal_count[$naam] = ($product*$price);
    }
    return;
}
Pagina: 1