View Full Version : php operatore ->
come da titolo, in php cosa significa l'operatore ->? (sempre se è un operatore)
PHP e' un linguaggio ritardato in cui piu' che parlare di "operatori" e di semantica ha piu' senso parlare di "sintassi".
Il simbolo "->" fa parte di uno scimmiottamento di sintassi del C++, dove la freccia e' un operatore effettivo che dereferenzia un puntatore al tipo aggregato presente a sinistra e restituisce il valore del campo di cui il nome a destra.
TLDNR: serve ad accedere ai campi di un oggetto.
:nono:
fa parte della sintassi legata allo "scorrimento" degli oggetti.
guarda questa pagina: http://php.net/manual/en/language.oop5.php
tipo:
echo $oggetto->elemento->sottoelemento1;
echo $oggetto->elemento->sottoelemento2;
echo $oggetto->elemento2->sottoelemento1;
echo $oggetto->elemento2->sottoelemento2;
un po' come se navigassi un array dove:
echo $array[1][1];
echo $array[1][2];
echo $array[2][1];
echo $array[2][2];
o meglio
echo $array['elemento']['sottoelemento1'];
echo $array['elemento']['sottoelemento2'];
echo $array['elemento2']['sottoelemento1'];
echo $array['elemento2']['sottoelemento2'];
spero di essere stato chiaro con un esempio spiccio ;)
come da titolo, in php cosa significa l'operatore ->? (sempre se è un operatore)
Serve per chiamare una proprieta o metodo di un oggetto/classe. Se hai esperienza con altri linguaggi, esso di fatti sostituisce il piu comune punto.
Java:
nomeOggetto.proprietà
Php:
NomeOggetto->proprietà
Inviato dal mio iPad utilizzando Tapatalk
:nono:
fa parte della sintassi legata allo "scorrimento" degli oggetti.
guarda questa pagina: http://php.net/manual/en/language.oop5.php Ah mbe', ora che si chiama "scorrimento" PHP e' un linguaggio molto migliore, con un design raffinato che include lo "scorrimento degli oggetti", cosa che altri linguaggi non hanno. :rolleyes:
in realtà ce l'hanno,
ma php lavorando più votato al front ha alcuni approcci che sono diventati abitudini nel modus operandi, nel bene o nel male.
quindi nativamente scorre gli oggetti come array da sempre, in altri linguaggi dovevi implementarti tu la funzione o importare la libreria.
essendo un linguaggio di scripting, esattamente come quelli che piacciono a te, ha un approccio meno fine nella tipizzazione del dato, e se hai mole di dati grossi si traduce in approcci particolari per la gestione della memoria.
sporcandosi le mani significa che un array è più performante di un oggetto, e se molto grosso usare un SplFixedArray si guadagna in velocità e spazio memoria. Quindi se vai alla ricerca di grossi carichi in concorrenza gestendo la ram viene da se che golang, swift e java vanno meglio.
Un linguaggio di scripting per scendere a questo livello diventa macchinoso.
Se invece rimani ad alto livello vuoi essere "veloce" a raggiungere l'obbiettivo e non perfarmence pure.
dafuq did I just read... :stordita:
E' molto bello che tu sappia tutte queste cose scarsamente rilevanti nella discussione di questo thread nonche' talvolta imprecise, ma ti prego di non fare assunzioni sui linguaggi che piacciono a me. :)
in realtà ce l'hanno,
ma php lavorando più votato al front ha alcuni approcci che sono diventati abitudini nel modus operandi, nel bene o nel male.
quindi nativamente scorre gli oggetti come array da sempre, in altri linguaggi dovevi implementarti tu la funzione o importare la libreria.
essendo un linguaggio di scripting, esattamente come quelli che piacciono a te, ha un approccio meno fine nella tipizzazione del dato, e se hai mole di dati grossi si traduce in approcci particolari per la gestione della memoria.
sporcandosi le mani significa che un array è più performante di un oggetto, e se molto grosso usare un SplFixedArray si guadagna in velocità e spazio memoria. Quindi se vai alla ricerca di grossi carichi in concorrenza gestendo la ram viene da se che golang, swift e java vanno meglio.
Un linguaggio di scripting per scendere a questo livello diventa macchinoso.
Se invece rimani ad alto livello vuoi essere "veloce" a raggiungere l'obbiettivo e non perfarmence pure.
Siamo un po OT... ma secondo me il problema dei linguaggi di scripting è proprio l'assenza di tipizzazione. Per fortuna esistono preprocessori come typescript.
Stavolta non ho inviato da ipad utilizzando tapatalk XD
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.