PDA

View Full Version : php operatore ->


sharkkk
02-10-2016, 17:26
come da titolo, in php cosa significa l'operatore ->? (sempre se è un operatore)

71106
02-10-2016, 19:22
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.

les2
03-10-2016, 10:40
: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 ;)

yakumat
04-10-2016, 06:53
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

71106
04-10-2016, 10:54
: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:

les2
05-10-2016, 14:53
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.

71106
05-10-2016, 20:48
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. :)

yakumat
05-10-2016, 21:29
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