Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo
Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo
Per diversi giorni il Galaxy S26 Ultra di Samsung è stato il nostro compagno di vita. Oltre alle conferme del colosso coreano come la qualità del display e una suite AI senza rivali, arriva il Privacy Display, un unicum nel mondo smartphone. Ci sono ancora alcuni gap che non sono riusciti a colmare lato batteria e fotocamera, seppur con alcuni miglioramenti.
Diablo II Resurrected: il nuovo DLC Reign of the Warlock
Diablo II Resurrected: il nuovo DLC Reign of the Warlock
Abbiamo provato per voi il nuovo DLC lanciato a sorpresa da Blizzard per Diablo II: Resurrected e quella che segue è una disamina dei nuovi contenuti che abbiamo avuto modo di sperimentare nel corso delle nostre sessioni di gioco, con particolare riguardo per la nuova classe dello Stregone
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Siamo tornati nel parco tecnologico di Trieste per il kick-off del programma che mette a disposizione di cinque startup le infrastrutture di ricerca, dal sincrotrone Elettra ai laboratori di genomica e HPC. Roberto Pillon racconta il modello e la visione
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-10-2015, 13:38   #1
Omicron36
Junior Member
 
Iscritto dal: Oct 2015
Messaggi: 5
[PHP] Dubbio su ciclo for + include

Salve a tutti,

Avrei un piccolo dubbio sulla logica alla base dell'istruzione "include". Il dubbio è nato dall'analisi di questo semplice script php ("index.php") che, semplicemente, dovrebbe contare i numeri da 1 a 10 per poi stamparli su schermo eseguendo l'istruzione del file "count.html".


index.php:
Codice:
<?php
$output = "";
for ($count = 1; $count <= 10; ++$count)
{
	$output .= "$count ";
}

include "count.html";
count.html:
Codice:
<!DOCTYPE html>
<html lang="it">
    <head>
        <meta charset="utf-8">
        <title>test 1</title>
    </head>
    <body>
	    <p>
		<?php echo $output; ?>
	    </p>
    </body>
</html>
Sicuramente il mio dubbio è sciocco, ma non riesco a capire un concetto:

Ragionando linearmente, quali sono i passaggi d'esecuzione del codice della pagina "index.php"? Come andrebbe letto a livello di passaggi ripetuti in ciclo? Nella mia testa il ciclo for dovrebbe continuare a impostare i nuovi valori della variabile $output fino a quando $count sia <=10 e solo dopo passare all'istruzione include "count.html". Quindi, nella mia testa, il valore $output dovrebbe sovrascriversi fino ad essere uguale a 10 e solo a quel punto passare all'istruzione include stampando su schermo unicamente il valore 10.

Chiaramente non è così e, count.html, stampa su schermo il seguente risultato:

1 2 3 4 5 6 7 8 9 10


Spero di essere riuscito a spiegarmi. Sapreste aiutarmi?
Omicron36 è offline   Rispondi citando il messaggio o parte di esso
Old 22-10-2015, 14:11   #2
Don[ITA]
Senior Member
 
L'Avatar di Don[ITA]
 
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
Il tuo ragionamento non fà una grinza! A parte il fatto che in quello specifico esempio la variabile $output non venga sovrascritta ma funga da accumulatore per il valore $count.
L'istruzione $output .= "$count " concanena "$count " all'ultimo valore di $output. Per ottenere il comportamente da te immaginato ti basta levare il . e lasciare solo =.
Tutto ti sarà più chiaro guardando qui
__________________
iMac 27" 5K
Don[ITA] è offline   Rispondi citando il messaggio o parte di esso
Old 22-10-2015, 14:22   #3
antonio338
Senior Member
 
L'Avatar di antonio338
 
Iscritto dal: Aug 2003
Messaggi: 1174
Puoi sempre includere un if all'interno del tuo ciclo for.
Quindi diventerebbe:

Codice:
if ($count === 10) {
include "count.html";
}
e eseguire altro codice solo quando il contatore ha raggiunto il valore di 10.
__________________
VENDITORI ONESTI: krieger, Corrente Elettrica, Cina.Z, Poliacido, Fedemike82, Lucas01, rikop, SystemR89
VENDITORI DA EVITARE: Ancora nessuno
antonio338 è offline   Rispondi citando il messaggio o parte di esso
Old 22-10-2015, 14:52   #4
Omicron36
Junior Member
 
Iscritto dal: Oct 2015
Messaggi: 5
Perfetto! Dunque la mia lacuna, in realtà, è legata al funzionamento di questo operatore:

.=

Riassumendo, scrivere questo:

Codice:
$a .= $b
Equivale a scrivere questo:

Codice:
$a = $a . "$b"
Il dubbio però rimane il medesimo!
Ho provato a fare questo esperimento:

Codice:
<!DOCTYPE html>
<html lang="it">
    <head>
        <meta charset="utf-8">
        <title>test 1</title>
    </head>
    <body>
	
	   <?
           $a = "";
	   for ($b = 1; $b <=10; ++$b)
	   {
             $a .= "$b ";
	   }
		   	   
             echo "$a";
	   ?>
			   
    </body>
</html>
Il risultato di questo script, su schermo, è 1 2 3 4 5 6 7 8 9 10. Anche questa volta mi aspettavo semplicemente 10!

Richiedendo l'echo di $a (alla fine del ciclo) dovrei ottenere questo: $a . "$b"
dove $b, sempre alla fine del ciclo, dovrebbe avere il valore di 10!

Cosa continua a sfuggirmi??

Ultima modifica di Omicron36 : 22-10-2015 alle 15:10.
Omicron36 è offline   Rispondi citando il messaggio o parte di esso
Old 22-10-2015, 15:17   #5
Omicron36
Junior Member
 
Iscritto dal: Oct 2015
Messaggi: 5
Eureka!

Ho finalmente compreso.
In sostanza, durante il ciclo, la variabile $a acquisisce cumulativamente pezzetti di testo!

Prima $a è vuota.
Poi diventa "1 "
Poi diventa "1 2 "
Poi diventa "1 2 3 "

E così via.

Dunque, alla fine del ciclo, $a sarà semplicemente 1 2 3 4 5 6 7 8 9 10!

Perfetto. Grazie mille per l'aiuto, non avevo colto di aver male interpretato, in realtà, il funzionamento dell'operatore .=

Alla prossima!
Omicron36 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo Recensione Samsung Galaxy S26 Ultra: finalmente ...
Diablo II Resurrected: il nuovo DLC Reign of the Warlock Diablo II Resurrected: il nuovo DLC Reign of the...
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup Deep Tech Revolution: così Area Science P...
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo HP OMEN MAX 16 con RTX 5080: potenza da desktop ...
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta Recensione Google Pixel 10a, si migliora poco ma...
Meta valuta tagli fino al 20% della forz...
MacBook Neo sorprende iFixit: 'Non vedev...
Venus Optics presenta due nuovi obiettiv...
AMD pubblica una guida per eseguire Open...
Tomb Raider I-III Remastered arriva su A...
X fa marcia indietro: si adeguerà...
Framework e la crisi delle memorie: terz...
Doom è ovunque: perché il ...
NVIDIA aggiorna G-Sync Pulsar: migliorat...
Portatile gaming con RTX 5060 a 1.099€: ...
6G for dummies: al MWC 2026 il CEO di Qu...
Le RAM tornano a salire di prezzo: quest...
5 robot aspirapolvere bestseller al mini...
A 59 anni il mio primo hackathon: dieci ...
Come sfruttare le Offerte di Primavera p...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 08:44.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v