Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [OGGETTI] Principio

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    17

    [OGGETTI] Principio

    Salve a tutti,
    incomincio ora ad affrontare la programmazione ad oggetti in php.
    Uso easyphp con php nella versione 4.1.3 per cui non posso usare il tutorial di html.it
    mi sono dunque rivolto direttamente a php.net.
    I primi due codici mi danno il seguente errore:

    Notice: Undefined index: 10 in c:\programmi\easyphp1-8\www\oggetti\cart_config.php on line 8

    Notice: Undefined index: 0815 in c:\programmi\easyphp1-8\www\oggetti\cart_config.php on line 8

    Notice: Use of undefined constant items - assumed 'items' in c:\programmi\easyphp1-8\www\oggetti\create.php on line 8
    items

    i due codici sono:

    cart_config.php

    <?php
    class Cart {
    var $items; // Articoli nel carrello

    // Aggiunge $num articoli di $artnr nel carrello

    function add_item ($artnr, $num) {
    $this->items[$artnr] += $num;
    }

    // Prende $num articoli di $artnr e li rimuove dal carrello

    function remove_item ($artnr, $num) {
    if ($this->items[$artnr] > $num) {
    $this->items[$artnr] -= $num;
    return true;
    } elseif ($this->items[$artnr] == $num) {
    unset($this->items[$artnr]);
    return true;
    } else {
    return false;
    }
    }
    }
    ?>

    create.php

    <?php
    require("cart_config.php");
    $cart = new Cart;
    $cart->add_item("10", 1);

    $another_cart = new Cart;
    $another_cart->add_item("0815", 3);
    echo items;
    ?>

    Sapete aiutarmi?
    Grazie
    Davide

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    leggendo al volo mi pare di vedere che l'errore risiede nella linea:

    Codice PHP:
     $this->items[$artnr] += $num
    dove viene fatto un incremento, ma la variabile non è inizializzata, cambia con:

    Codice PHP:
    if (!isset($this->items[$artnr])) {
      
    $this->items[$artnr] = 0;
    };
    $this->items[$artnr] += $num
    e inoltre cambia:

    Codice PHP:
    echo items
    con:


    Codice PHP:
    echo var_export($cart->items); 

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    Quelli che vedi sono "warnings" e non errori reali, ma è sempre meglio non averli, quindi meglio che cambi il codice di cart_config in questo modo (vedi le righe "aggiunte")
    Codice PHP:
    <?php
    class Cart {
    var 
    $items// Articoli nel carrello

    // Aggiunge $num articoli di $artnr nel carrello

    function add_item ($artnr$num
    {
        if(!isset(
    $this->items[$artnr]))    // riga aggiunta
            
    $this->items[$artnr] = 0;        // riga aggiunta
        
    $this->items[$artnr] += $num;
    }

    // Prende $num articoli di $artnr e li rimuove dal carrello

    function remove_item ($artnr$num
    {
        if(isset(
    $this->items[$artnr]))        // riga aggiunta
        
    {                                    // riga aggiunta
            
    if ($this->items[$artnr] > $num
            {
                
    $this->items[$artnr] -= $num;
                return 
    true;
            } elseif (
    $this->items[$artnr] == $num) {
                unset(
    $this->items[$artnr]);
                return 
    true;
            } else {
                return 
    false;
            }
        } else {                            
    // riga aggiunta
            
    return false;                    // riga aggiunta
        
    }                                    // riga aggiunta
    }
    ?>

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    17
    ho ridotto il file cart.config.php

    <?php
    class Cart {
    var $items; // Articoli nel carrello

    // Aggiunge $num articoli di $artnr nel carrello

    function add_item ($artnr, $num)
    {
    if(!isset($this->items[$artnr])) // riga aggiunta
    $this->items[$artnr] = 0; // riga aggiunta
    $this->items[$artnr] += $num;
    }

    ?>

    e l'errore generato è

    Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in c:\programmi\easyphp1-8\www\oggetti\cart_config.php on line 14

    linea 14 e la fine dello script php ?>

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    17
    Ok scusate sono al lavoro e non ho visto bene quando ho fatto il match delle parentesi...sorry

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.