Visualizzazione risultati 1 fino 9 di 9

Discussione: [PHP] Dubbio su condizione else if vs elseif

  1. #1
    L'avatar di darkwolf
    darkwolf non è connesso Salvatore Noschese
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,558

    Predefinito [PHP] Dubbio su condizione else if vs elseif

    Salve raga!
    Poco fa stavo ottimizzando i titoli del mio sito con un codice che mi sono fatto al momento:
    Codice PHP:
    // Fix da inserire dopo il titolo
    $fixfullurl = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
    if ((
    $scripturl == $fixfullurl) || (''.$boardurl.'/' == $fixfullurl)) {
    $fixtitleafter = " - News";}
    elseif (
    $context['page_title'] == 'Downloads'){
    $fixtitleafter = " Area";}
    elseif (
    $context['page_title'] == 'Albums'){
    $fixtitleafter = " - Gallery";}
    else{
    $fixtitleafter = "";}
    // Fix da inserire prima del titolo
    if ($context['page_title'] == 'Regolamento'){
    $fixtitlebefore = "DarkWolf - ";}
    elseif (
    $context['page_title'] == 'GuestBook'){
    $fixtitlebefore = "DarkWolf - ";}
    elseif (
    $context['page_title'] == 'Download'){
    $fixtitlebefore = "Area ";}
    else{
    $fixtitlebefore = "";}
    Cambiando quindi il title da:
    Codice PHP:
    <title>', $context['page_title'], '</title>';
    @
    Codice PHP:
    <title>', $fixtitlebefore, '', $context['page_title'], '', $fixtitleafter, '</title>';
    So che magari non è la soluzione più elegante ma m'è venuta questa (accetto consigli ovviamente) e funziona a dovere (senza causare errori nel log).
    Il punto è che scrivendo questa modifica ero incerto se usare elseif (unito) oppure else if (separato).
    La domanda è: "qual'è la condizione corretta in questo caso"? Che differenza passa tra else if e elseif?
    -
    Ai mod: scusate ho postato per errore in Basi per siti web quando avrei dovuto postare in PHP, MySql e file database
    Ultima modifica di darkwolf : 24-03-2009 alle ore 05.56.15 Motivo: Ho sbagliato sezione, sorry!

  2. #2
    Guest

    Predefinito

    Da quello che so nessuna, è come scrivere print o echo

    Comunque potresti usare un Array per scrivere tutti i titoli della pagine, poi fare un controllo se è in_array() e automaticamente ci accodi sia $fixtitlebefore che $fixtitleafter

  3. #3
    Guest

    Predefinito

    elseif e else if non hanno differenze, invece echo e print sì, seppure minime.


    Ciao!

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da debug Visualizza messaggio
    elseif e else if non hanno differenze, invece echo e print sì, seppure minime.


    Ciao!
    Mamma mia oh, ma perchè sono sempre convinto di cose sbagliate?

    Scusate per l'affermazione errata

  5. #5
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Citazione Originalmente inviato da biccheddu Visualizza messaggio
    Da quello che so nessuna, è come scrivere print o echo
    "Print" e "echo" hanno una piccola differenza. La prima è una funzione, la seconda un costrutto del linguaggio ed leggermente più performante.

    Tra "elseif" ed "else if" la differenza è solo nella instassi.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  6. #6
    Guest

    Predefinito

    Mamma mia oh, ma perchè sono sempre convinto di cose sbagliate?
    Perchè l'esperienza insegna anche a mettersi continuamente in discussione ;)


    Ciaooo!!!

  7. #7
    L'avatar di darkwolf
    darkwolf non è connesso Salvatore Noschese
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,558

    Predefinito

    Grazie per la spiegazione, però qui, nelle note, sembra dire che in alcune circostanze fa differenza:
    http://it2.php.net/elseif

  8. #8
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Nel documento ti viene spiegato che la differenza è semplicemente dal punto di vista sintattico, ma non ce ne sono dal punto di vista del funzionamento.

    Volendo essere davvero pedanti, puoi pensare ai diagrammi di flusso: questo dovrebbe essere per la struttura if / elseif / ... / else
    Codice:
    cond1? ---> SI ---> istr1
    |
    NO
    |
    cond2? ---> SI ---> istr2
    |
    NO
    |
    ...
    |
    NO
    |
    istr_else
    questo, invece, per una struttura if / else if / ... / else:
    Codice:
          cond1?
            |
       -----------
       |         |
       SI        NO
       |         |
    istr1      cond2?
                 |
            -----------
            |         |
            SI        NO
            |         | 
          istr2      .................
                                   |
                              -----------
                              |         |
                              SI        NO
                              |         | 
                           istrN     istr_else
    Come puoi vedere, i due flussi sono diversi, ma il risultato finale non cambia...

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  9. #9
    L'avatar di darkwolf
    darkwolf non è connesso Salvatore Noschese
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,558

    Predefinito

    OK, grazie dementialsite :)
    -
    PS: alla fine, per evitare conflitti con altre aree ho cambiato così il codice:
    Codice PHP:
    // Fix da inserire dopo il titolo
    $fixfullurl = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
    $fixlink1 = "http://darkwolf.altervista.org/forum/";
    $fixlink2 = "http://darkwolf.altervista.org/forum/index.php";
    $fixlink3 = "http://www.darkwolf.altervista.org/forum/";
    $fixlink4 = "http://www.darkwolf.altervista.org/forum/index.php";
    if ((
    $fixfullurl == $fixlink1) || ($fixfullurl == $fixlink2) || ($fixfullurl == $fixlink3) || ($fixfullurl == $fixlink4)){
    $fixtitleafter = " - News";}
    elseif (
    $context['page_title'] == 'Downloads'){
    $fixtitleafter = " Area";}
    elseif (
    $context['page_title'] == 'Albums'){
    $fixtitleafter = " - Gallery";}
    else{
    $fixtitleafter = "";}
    // Fix da inserire prima del titolo
    if (($context['page_title'] == 'Regolamento') || ($context['page_title'] == 'GuestBook')){
    $fixtitlebefore = "DarkWolf - ";}
    elseif (
    $context['page_title'] == 'Download'){
    $fixtitlebefore = "Area ";}
    else{
    $fixtitlebefore = "";}
    Codice PHP:
    <title>', $fixtitlebefore, '', $context['page_title'], '', $fixtitleafter, '</title>
    Ultima modifica di darkwolf : 24-03-2009 alle ore 16.05.15

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •