Autore Topic: Info switch e case  (Letto 3256 volte)

lemonsong

  • Anziani
  • Utente storico
  • *
  • Post: 1867
    • lemonsong's world
Info switch e case
« il: 08 Ottobre, 2011, 14:30:14 »
Toc, toc... è permesso?  :)
Postare da questo lato (server) per me è come tentare di scrivere una lettera in aramaico... comunque ci provo eh?  :)

Visto che tigrone, in altro topic, ha accennato all'istruzione(?) switch, vorrei avere un parere su un esempio, trovato in giro per la Rete.

Supponiamo il caso di avere una serie di pagine tutte impostate (layout) allo stesso modo con dei piccoli contenuti che variano e vogliamo, per praticità(?), usare una sola pagina (completa).

Questo è l'esempio (ho usato WS solo per motivi pratici):
http://lemonsong.altervista.org/test_switch-case/

Qui lo zip:
http://lemonsong.altervista.org/test_switch-case/test_switch-case.zip

Premesso che sicuramente ci saranno altri metodi più efficaci, le domande sono:
  • quanti e quali errori ci sono nel codice php?
  • è consigliato usare switch e case per ottenere ciò?
  • quanto è obsoleto questo metodo?
Bene, è stato come aspettare nella sala d'attesa del dentista  ;D


serzio

  • Amministratore
  • Utente storico
  • *****
  • Post: 1706
Re:Info switch e case
« Risposta #1 il: 08 Ottobre, 2011, 15:52:55 »
Toc, toc... è permesso?  :)
Postare da questo lato (server) per me è come tentare di scrivere una lettera in aramaico... comunque ci provo eh?  :)

Visto che tigrone, in altro topic, ha accennato all'istruzione(?) switch, vorrei avere un parere su un esempio, trovato in giro per la Rete.

Supponiamo il caso di avere una serie di pagine tutte impostate (layout) allo stesso modo con dei piccoli contenuti che variano e vogliamo, per praticità(?), usare una sola pagina (completa).

Questo è l'esempio (ho usato WS solo per motivi pratici):
http://lemonsong.altervista.org/test_switch-case/

Qui lo zip:
http://lemonsong.altervista.org/test_switch-case/test_switch-case.zip

Premesso che sicuramente ci saranno altri metodi più efficaci, le domande sono:
  • quanti e quali errori ci sono nel codice php?
  • è consigliato usare switch e case per ottenere ciò?
  • quanto è obsoleto questo metodo?
Bene, è stato come aspettare nella sala d'attesa del dentista  ;D


Ti rispondo io anche se non è strettamente il mio campo. Se consideriamo l'esercizio come tale, ovvero a titolo di esercizio, è quasi corretto ... c'e' un errore in riga 102 del file index.php

Codice:
Only registered users can see contents. Please click here to Register or Login.
La funzione isset(), il cui prototipo è bool  isset ( $var [, $... ] ), restituisce un booleano, ovvero true o false che nel tuo caso viene negato dall'operatore ! ma viene confrontato con la stringa "x" e non ne capisco il motivo. Qualsiasi situazione contemplata dal tuo IF avrà come risultato FALSE e quindi la clausola THEN non verrebbe mai valutata.

A parte questa cosa, da un punto di vista pratico, nel caso specifico da te proposto, direi che si tratta di un assurdo contorsionismo mentale. Hai realizzato tre pagine fittizie per richiamarle tramite un include .... è solo un esercizio e quindi ha valore solo come tale.  ;)

lemonsong

  • Anziani
  • Utente storico
  • *
  • Post: 1867
    • lemonsong's world
Re:Info switch e case
« Risposta #2 il: 08 Ottobre, 2011, 16:41:24 »
c'e' un errore in riga 102 del file index.php

Codice:
Only registered users can see contents. Please click here to Register or Login.

OK, quindi, come includere la pagina di default insetti.html ?

Questo potrebbe andare?

Codice:
Only registered users can see contents. Please click here to Register or Login.
Il resto che hai scritto, lo capirò a Natale... forse  :)
Grazie.


stesil

  • Anziani
  • Utente storico
  • *
  • Post: 1219
    • quellidelcucuzzolo
Re:Info switch e case
« Risposta #3 il: 08 Ottobre, 2011, 19:08:10 »
Provo a risponderti io, poi se ci sono sciocchezze, correggeranno:

Basta questo per visualizzare la pagina insetti:

Codice:
Only registered users can see contents. Please click here to Register or Login.
che tradotto significa: se la variabile p non ha nessun valore, esegui il codice, cioè includi la pagina insetti.html.

lemonsong

  • Anziani
  • Utente storico
  • *
  • Post: 1867
    • lemonsong's world
Re:Info switch e case
« Risposta #4 il: 08 Ottobre, 2011, 20:46:41 »
che tradotto significa: se la variabile p non ha nessun valore, esegui il codice, cioè includi la pagina insetti.html.

Grazie stesil, ora vedo un lumicino in lontananza ma temo sia lo standby del mio neurone  :)

serzio

  • Amministratore
  • Utente storico
  • *****
  • Post: 1706
Re:Info switch e case
« Risposta #5 il: 08 Ottobre, 2011, 21:17:39 »
Provo a risponderti io, poi se ci sono sciocchezze, correggeranno:

Basta questo per visualizzare la pagina insetti:

Codice:
Only registered users can see contents. Please click here to Register or Login.
che tradotto significa: se la variabile p non ha nessun valore, esegui il codice, cioè includi la pagina insetti.html.

Che è diverso dal dire che la variabile p ha un valore nullo o qualsivoglia. Semplicemente settata o non settata e se lo è può assumere qualsiasi valore, anche nullo, eventualmente, mentre con la funzione isset() si esegue una verifica sull'esistenza o meno di una o più variabili.

Quando invece si parla di prototipo di una funzione, si intende una descrizione formale della funzione con l'elenco ed il tipo di argomenti e l'eventuale tipo del dato in uscita.

Ad esempio:

bool  isset ( $var [, $... ] )

è il prototipo della funzione isset() che prende un certo numero di argomenti che sono variabili (precedute dal simbolo $ e separate dalla virgola), una o più ... le parentesi quadre indicano gli argomenti opzionali .... e restituisce un valore booleano, ovvero TRUE o FALSE (vero o falso). Il punto esclamativo ! è definito come operatore not, ovvero negazione di ciò a cui è riferito: !FALSE = TRUE

Pensavo che, avendolo scritto, il significato fosse chiaro già da subito.

lemonsong

  • Anziani
  • Utente storico
  • *
  • Post: 1867
    • lemonsong's world
Re:Info switch e case
« Risposta #6 il: 08 Ottobre, 2011, 22:09:49 »
Che è diverso dal dire che la variabile p ha un valore nullo o qualsivoglia.
[...]
Pensavo che, avendolo scritto, il significato fosse chiaro già da subito.

Ora dovrebbe essermi più chiaro, grazie  :)
Riassumendo, quel codice trovato non ricordo dove, è una ciofeca... bene, lo sospettavo.

milux

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1779
    • 3MD
Re:Info switch e case
« Risposta #7 il: 09 Ottobre, 2011, 07:46:25 »

Riassumendo, quel codice trovato non ricordo dove, è una ciofeca... bene, lo sospettavo.

secondo me non è una ciofeca, ma come dice Tigrone ci sono diversi modi di scrivere del codice per avere lo stesso risultato.
**OS : Windows 7 - 63Bit (uno è andato perso e non lo trovo..) + W10
**Website X5 :  Evo 10(active) - Evo 11(active) - 13(active)
**Wysiwyg Web Builder 12 (passa al lato oscuro..)
**Hosting : LINUX
**Editor : Notepad ++ / Geany

serzio

  • Amministratore
  • Utente storico
  • *****
  • Post: 1706
Re:Info switch e case
« Risposta #8 il: 09 Ottobre, 2011, 12:19:10 »

Riassumendo, quel codice trovato non ricordo dove, è una ciofeca... bene, lo sospettavo.

secondo me non è una ciofeca, ma come dice Tigrone ci sono diversi modi di scrivere del codice per avere lo stesso risultato.

Certo, ci sono infiniti modi per scrivere un codice, ma un codice corretto non contiene istruzioni che non verranno mai eseguite in nessun caso. Si tratta di un errore di progettazione. Oltretutto i compilatori più intelligenti, non è il caso dell'interprete php (il linguaggio php non è compilato ma interpretato), eliminano direttamente il codice sui rami morti nella cosiddetta Control Flow Analisys.