Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    strano comportamento assegnando un object

    il codice è una cosa di questo tipo:

    Codice PHP:
    $array_el = array();

    for(
    $i=0;$i<$n_elementi;$i++)
    {
        
    $obj = ...... (da una funzione)

        echo(
    'el $i: '.$obj->nome.'.');

        
    $array_el[] = $obj;

    Ora, l'output in questo ciclo mi da, giustamente, una cosa tipo:

    el 0: Carlo.
    el 1: Luca.
    el 2: Andrea.

    Ma se vado a scorrere l'array $array_el ricevo (per ogni $array_el[$i]->nome):

    Andrea
    Andrea
    Andrea

    Ovvero l'ultimo oggetto assegnato, in pratica è come se avessi asseganto l'indirizzo di $obj invece che aver memorizzato una intera copia dell'oggetto in $array_el[ x ] e lui mi stampa l'ultima informazione che ho messo in $obj...

    Uso PHP 5, Apache 2 su WinXP.

  2. #2
    Trovato, in PHP 5 adesso bisogna usare la keyword "clone" per fare la copia degli object... che due maroni.
    Concentrate on what cannot lie... The evidence. -- Gil Grissom

  3. #3
    Originariamente inviato da Frankesk
    Trovato, in PHP 5 adesso bisogna usare la keyword "clone" per fare la copia degli object... che due maroni.
    perché non leggi il manuale invece di lamentarti di php?
    hanno fatto un lavoro bestiale per implementare il supporto per gli oggetti su php5 ed ovviamente, siccome hanno dovuto stravolgere parecchia roba, qualcosa a livello di programmazione è cambiata

    è qui -> http://www.php.net/manual/en/language.oop5.php

  4. #4
    Grazie per il link.

    Mi lamento eccome visto che il mio codice non è compatibile per un cacchio all'indietro adesso, ma forse c'è da aspettarselo che sia così quando si passa da una versione X a X+1

    Ritorno al 4...

  5. #5
    Utente di HTML.it L'avatar di Nix82
    Registrato dal
    Oct 2001
    residenza
    Mussolente (VI)
    Messaggi
    1,122
    Originariamente inviato da Frankesk
    Ritorno al 4...
    E sbagli, sbagli molto.
    Se ci sono stati dei cambiamenti è stato a fin di bene (guarda il register_globals per esempio). PHP 5 è veramente fantastico sotto l'aspetto della OOP. Se ti arrendi alle prime difficoltà, che programmatore sei ? Quanti fatal error per imparare ? Ma poi ci riesci, sbattendoci la testa e domandando aiuto alla fine ci riesci...
    La cultura è il nostro passaporto per il domani. Il futuro appartiene alle persone che si preparano oggi.
    Martin Luther King

  6. #6
    Concordo Nix

    Diciamo quindi che i vecchi siti li lascio al 4, i nuovi li farò in 5 e con calma controllerò/aggiornerò le vecchie classi in 5

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.