Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di niubbo
    Registrato dal
    Jul 2004
    Messaggi
    692

    [PHP] Notazione :: per gli oggetti... cosa è? Ke differenza c'è tra new e &new?

    Sto imparando a programmare ad oggetti ma trovo informazioni limitate anke su html.it e sul mio manuale... inparticolare nn riesco a capire cosa sia la notazione "::" ke vedop in certi script e nn capisco la differenza tra new e &new... qualcuno mi può dare una mano?

    Grazie
    Non si può niubbare per sempre...

    P.S. Ma perché i CSS non fanno quello che gli dico di fare.... aaaAAAAAAARGHHHHH!!!!!

  2. #2

  3. #3
    Utente di HTML.it L'avatar di niubbo
    Registrato dal
    Jul 2004
    Messaggi
    692
    E invece nemmeno in quei 2 articoli lo spiega... cioè spiega la funzione generica di "&" nelle funzioni e nelle variabili... ma la butta troppo sul tenico... in pratica ke cosa cambi nn è ke sia grankè kiaro... nn fa esempi... ne deduco ke è la stessa cosa... (?)
    Non si può niubbare per sempre...

    P.S. Ma perché i CSS non fanno quello che gli dico di fare.... aaaAAAAAAARGHHHHH!!!!!

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    1.
    PHP 4 consente l'accesso statico (cioè indipendente dalla creazione di un oggetto) ai metodi di una classe attraverso la sintassi nomeClasse::metodo().
    Se hai letto qualcosa della programmazione a oggetti, sai che una volta creata la classe per utilizzarla la devi istanziare con una dichiarazione del genere:

    codice:
    $istanza = new miaClasse();
    e per usarne poi i suoi metodi:
    codice:
    $istanza->metodo();
    con la notazione di cui hai chiesto la spiegazione puoi saltare il primo passaggio.

    2.
    Per il secondo caso ti faccio un esempio (ancora più semplice di quello portato nel secondo link):

    codice:
    function scrivi_stringa($stringa){
       $stringa = "Testo nella funzione ".$stringa;
       echo $stringa."
    ";
    }
    Se tu chiami questa funzione cosi:

    codice:
    $stringa= "di prova";
    scrivi_stringa($stringa);
    echo $stringa;
    otterrai 2 righe fatte cosi

    codice:
    Testo della funzione di prova
    di prova
    se invece chiamassi la funzione in questo modo:
    codice:
    $stringa= "di prova";
    scrivi_stringa(&$stringa);
    echo $stringa;
    otterresti:
    codice:
    Testo della funzione di prova
    Testo della funzione di prova
    perchè alla funzione non passi il contenuto della variabile, ma la variabile stessa, e quindi il valore al suo interno viene modificato.
    Per capire questo concetto devi avere chiaro il concetto di scopo (traduzione che non mi piace di "scope" di una variabile).

    http://it2.php.net/manual/it/languag...bles.scope.php

    In poche parole nel primo caso la variabile $stringa fuori dalla funzione è diversa e separata dalla variabile $stringa all'interno della funzione.
    Il carattere & serve per passare alla funzione la variabile vera e propria e per dire alla funzione di comportarsi diversamente dalle regole definite di separazione degli "scopi".

    Ciao, spero di aver soddisfatto la tua curiosità.

  5. #5
    Utente di HTML.it L'avatar di niubbo
    Registrato dal
    Jul 2004
    Messaggi
    692
    Questo lo avevo ben kiaro: lo scopo di "&" nel passaggio per riferimento modifica il contenuto della variabile a cui si fa riferimento... ma nell'istanzionare un oggetto scrivendo:

    $prova = &new MiaClasse... cosa comporta "&"?
    Non si può niubbare per sempre...

    P.S. Ma perché i CSS non fanno quello che gli dico di fare.... aaaAAAAAAARGHHHHH!!!!!

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.