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

    [php4 -> oop] - Primi passi e subito primo errore!

    Salve a tutti, in questi giorni sto facendo i primi passi nel mondo oo di php (per ora in versione 4 per motivi di hosting) ed incorro in un errore che non riesco a capire :
    (Premetto di essere un novellino di questo linguaggio)
    mettiamo di avere una situazione simile

    Codice PHP:
    class {

        function 
    HelloA() {
            echo 
    "Hello world!";
        }

    }

    class 
    {

        var 
    $prova = new A(); //??????
        
        
    function HelloB() {
            
    $this -> prova -> HelloA();
        }

    }

    $b = new B();

    $b -> HelloB(); 
    Questo esempio sarebbe risolvibile estendendo B da A ma quello che io voglio capire è se è possibile scrivere qualcosa come

    Codice PHP:
    var $prova = new A(); //all'interno di B 
    per poi riutilizzarlo tranquillamente in B.
    Sono fuori strada?Cosa sbaglio?Qualcuno potrebbe darmi qualche dritta in merito?Perchè non funziona..
    L'errore che mi ritorna è il seguente
    codice:
    Parse error: syntax error, unexpected T_NEW on line 10
    Grazie mille in anticipo!

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    puoi, ma non nella definizione della variabile

    class B {
    var $a;
    function test() {
    $this->a = new A();
    }
    }


  3. #3
    Ma questa roba non andrebbe messa nel costruttore?

    (chiedo, eh? Vengo da OOP su altri linguaggi)

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    il costruttore è una cosa, in php4 è la funzione che ha lo stesso nome della classe, un'altra cosa sono le definizioni delle variabili.

    Sono un autodidatta della programmazione a oggetti, ma io ho sempre saputo che le variabili andrebbero solo dichiarate, poi sta ai metodi setter il compito di settare le variabili. In questo caso la teoria è confermata dalla sintassi :-)

    L'esempio che ti ho fatto era solo per la sintassi.

    ciao

  5. #5
    Originariamente inviato da gianiaz
    il costruttore è una cosa, in php4 è la funzione che ha lo stesso nome della classe, un'altra cosa sono le definizioni delle variabili.

    Sono un autodidatta della programmazione a oggetti, ma io ho sempre saputo che le variabili andrebbero solo dichiarate, poi sta ai metodi setter il compito di settare le variabili. In questo caso la teoria è confermata dalla sintassi :-)
    Non mi sono spiegato. Che fuori dai metodi non si possano assegnare variabili di istanza (costanti sì però, credo) è assodato. Il posto per inizializzarle però sarebbe il costruttore, non una funzione qualsiasi.

  6. #6
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    ok, e ti ripeto, il mio era solo un codice d'esempio.

    Cambia il nome alla funzione e hai il tuo costruttore.

    ciao

  7. #7
    Grazie mille per le risposte, in effetti non sapevo la questione del settaggio della variabile in questo modo.Devo aver fatto confusione venendo dal java

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.