Newsgroup: it.comp.www.php
Titolo: virgolette e apici _ quali conviene usare?

Salve,
ho letto da qualke parte su qualke forum ke usando gli apici
singoli invece delle doppie virgolette, l'esecuzione di
pagine php è più veloce (per via della parserizzazione).
Cioè :
$variabile_veloce =' ciao' .$nome ;
$variabile_lenta="ciao $nome ";
Mi date conferma di ciò ?
Dovrebbero esserci riferimenti sul manuale di php.
-- 
WEbdOM webmaster di 
www.metronic.it
 
il sito sulla telefonia ai prezzi che cercavi
Iscriviti a Pillol@ - la newsletter sulla telefonia (e non solo).
Metronic.It mobile phone philosophy
www.gadgetpoint.it
 serigrafia on line

 ha scritto nel messaggio
news:3bf18097...@news.cis.dfn.de...


Mi date conferma di ciò ?
Te lo confermo. E' una cosa marginale, comunque. Le stringhe costanti
dovrebbero essere racchiuse fra apici singoli.
Se qualcuno vuole, puo' provare
	sed -e "s/\"\([^\"'$]*\)\"/'\1'/g"
che fa una prima conversione basilare di uno script... Ripeto: non e'
che ci sia gran differenza, SUL TOTALE DELLO SCRIPT. Piu' che altro,
	$a = "Pippo";
e' uno spreco.
	$b = "$a Pippo";
e' molto piu' lento di
	$b = $a . 'Pippo';
ma e' meno chiaro; e alla fine, bisogna vedere costi e benefici.
Tempo	Istruzione
8.110	$a = "pippo"; $b = "$a Pluto Pluto";
8.100	$a = 'pippo'; $b = "$a Pluto Pluto";
4.720	$a = 'pippo'; $b = $a . ' Pluto Pluto';
...ora pero' fai un po' il conto di quanto tempo passi effettivamente
a concatenare stringhe :-)
Leonardo e la dura legge di Amdahl
-- 
Nior thainig ar major i dtus an lae chugainn,
is ni rabhamar fein ann i gcoir na gceart
ach mar sheolfai aoireacht bo gan aoire,
ar thaobh na greine de Sliabh na mBan.

dato che comunque entrambi sono caratteri ascii.
Il fatto e' che
	$b = $a . ' pippo';
viene tradotto, alla grossa, con
	b = malloc(strlen(a)+strlen("pippo"));
	strcpy(b, a);
	strcat(b, ' pippo');
mentre
	$b = "$a pippo";
diventa
	b = malloc(strlen(a)+strlen("$a pippo")-strlen("$a"));
	strcpy(b, a);
	strcat(b, strchr("$a pippo", "$")+strlen("$a"));
...che e' piu' complessa e piu' lenta.
Leonardo


 ...che e' piu' complessa e piu' lenta.
Perņ non č un problema delle virgolette singole o doppie, ma di come viene
scritta la cosa:
$b = $a." resto della stringa";
e
$b = $a.' resto della srtinga';
sono equivalenti!
LAMASE

4.720	$a = 'pippo'; $b = $a . ' Pluto Pluto';
Io credo ke il parser controlla tutto cio' ke e' contenuto
fra le doppie virgolette per vedere se ci sono variabili da
espandere. Con gli apici doppi e le concatenazioni si dice
al parser di non effettuare nessun controllo . Ma visto ke
c'e' un guadagno del quasi 50% fra la seconda e la terza
istruzione, che faccio? riscrivo tutto?:))
Se mi dici come calcoli il costo computazionale ( e' in
microsecondi? ) faccio una prova su due diverse versioni di
uno script di produzione (ad esempio una visualizzazione del
carrello o una pagina ke restituisce dei records. Vediamo
quanto si guadagna su uno script completo:)


|Però non è un problema delle virgolette singole o doppie,
|ma di come viene scritta la cosa:
|$b = $a." resto della stringa";
|e
|$b = $a.' resto della srtinga';
|sono equivalenti!
Non esattamente, perché il discorso è che quando il parser trova le
virgolette semplici non     elabora il codice, mentre quando incontra le
virgolette doppie lo elabora.
Ad es, posto $a = "razmataz";
echo '$a \n';
restituisce letteralmente $a \n, mentre
echo "$a \n";
restituisce razmataz seguito da un a-capo (il quale a-capo in html
ovviamente non è significante, ma questo è un altro discorso).
Quindi in linea di massima, a parte la competentissima spiegazione di
Leonardo, se uno deve mandare in output semplice codice html senza parsing
di variabili eccetera, credo sia più veloce usare le virgolette semplici.

sono equivalenti!
Nòne. Nel secondo caso, il parser SA che non deve effettuare una analisi
della stringa e puo' limitarsi ad usare bovinamente strcat. Nel primo la
sicurezza non c'e', e come minimo si deve fare un test con strchr.
La differenza in questo caso e' marginale. Ma c'e'.
Facendo varie operazioni con stringhe costanti:
user    0m4.770s	$b = $a . 'pippo' . 'pluto' . 'paperino';
user    0m4.820s	$b = $a . "pippo" . "pluto" . "paperino";
N.B.: su dieci milioni di cicli. La differenza per singola operazione e'
      quindi stimabile in circa mezzo centesimo di microsecondo.
Leonardo
-- 
And where the black and corkscrew towers climb
Lost and athirst the ragged pack abides,
Old as the aeons, trapped in tombs of time,
Sailing the tortuous temporal tides...

microsecondi? ) 
E' in secondi su dieci milioni di iterazioni. Quindi puoi considerarli come
decimi di microsecondo :-)


       quindi stimabile in circa mezzo centesimo di microsecondo.
Porca pupazza, ecco perchč i miei script sono lenti!!! =))))))
Grazie a tutti per le delucidazioni!
LAMASE

 user    0m4.820s $b = $a . "pippo" . "pluto" . "paperino";
Come misuri queste quantita' (script esempio)?




#!/usr/local/bin/php -q
<?
	$a = 
	for ($i=0; $i < 10000000; $i++)
	{
		$b = 
	}
?>
$ time ./test.php		# Se ho fretta
$ stime -i 100 ./test.php	# Se ho tempo per un caffe'


Credi bene. A proposito, perche' non hai scritto "kredo"? :-)))
penso che utilizzi un strtr($msg,'ch','k') prima di postare $msg
credo non matcha.
Ciao :-)
Luciano



esatto:)) diciamo ke faccio direttamente una str_replace()
:))


:))
Ok, ora la Domanda e': "Perche' lo fai"?
Attenzione, se mi rispondi che lo fai per rispamiare byte ti buco il
server, con la biro al titanio. :-)
Luciano


Il fatto è ke ho preso quest'abitudine da quando mando sm
con il gsm, per risparmiare caratteri:)
Poi, nelle mie  lontane incursioni notturne in IRC, ricordo
ke avevo adottato questo ,diciamo così, stile:))
La cosa mi è rimasta, specie dopo aver letto un articolo su
Focus ke parlava dell'evolversi della lingua italiana. Si
leggeva ke in futuro ch diventerà k, e tante altre cose.
Quindi, niente a ke vedere con lo stile dei wannabe hacker,
komunisti on line (anke se lo sono, ma questo è un altro
discorso___mai miskiare internet con la politica:p ) etc.
etc.
Bye:)
-- 
WEbdOM webmaster di


 etc.
sai ke è pesantissimo da leggere?
LAMASE


Mi vieni a fare discorsi di usabilità anke sui NG?:)
Scherzo, se mi si chiede di scrivere in maniera decente lo
faccio.


 faccio.
no, non volevo, sorry! scrivi come vuoi, figurati se mi metto a dirti come
devi fare!
LAMASE