Visualizzazione risultati 1 fino 6 di 6

Discussione: Dubbio su sintassi php! Definire una variabile e poi un if o if e else?

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

    Predefinito Dubbio su sintassi php! Definire una variabile e poi un if o if e else?

    Come da oggetto..
    Ottenendo in entrambi i casi lo stesso valore, mi chiedevo se è più corretto usare una formula come questa:
    Codice PHP:
    <?php
    // User
    if(get_post_type() == "forum")
    {
    $user = ("prova_forum");
    }
    else
    {
    $user = ("prova");
    }
    ?>
    Oppure settare prima la variabile e poi fare solo l'if:
    Codice PHP:
    <?php
    $user
    = ("prova")
    // User
    if(get_post_type() == "forum")
    {
    $user = ("prova_forum");
    }
    ?>
    Cioè, oltre a risparmiare caratteri c'è altro da considerare nella seconda ipotesi? :)

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,686

    Predefinito

    È meglio il primo modo: non guardare tanto i caratteri, ma le istruzioni. Nel secondo modo dai valore 2 volte alla stringa; la prima volta è inutile. Invece nel secondo modo fai soltanto un if e un'assegnazione (nel secondo, un if e 2 assegnamenti).

    Se vuoi risparmiare caratteri, prova:

    Codice PHP:
    <?php
    $user
    = (get_post_type() == "forum")?'prova_forum':'prova';
    ?>
    p.s: ovviamente stiamo parlando di tempi infinitesimi.... Anzi, direi anche uguali.


    Ciao!
    Ultima modifica di alemoppo : 17-03-2013 alle ore 20.03.43

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

    Predefinito

    Quello era un esempio, ma io ho questo codice ed ho aggiunto un'interruzione con l'if lasciando la prima variabile lì dov'era anziché inserirla nell'else...
    Codice PHP:
    $user_mail = ( isset($_POST['email']) ) ? trim($_POST['email']) : null;
    If (
    is_plugin_active("bbpress/bbpress.php") && (get_post_type() == "forum" || get_post_type() == "topic" || get_post_type() == "reply"))
    {
    $user_mail = ( isset($_POST['bbp_anonymous_email']) ) ? trim($_POST['bbp_anonymous_email']) : null;
    }
    $user_ip = getRealIpAddr();
    ecco, in casi così mi sembra più logico seguire questa strada anziché andare di else... però, appunto, volevo capire se è la via giusta oppure no :/

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,686

    Predefinito

    A maggior ragione io userei l'else... (sempre per il motivo delle istruzioni).

    Ciao!

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

    Predefinito

    È che a me sembrano corrette entrambe le forme...
    Così come l'ho messa io la variabile è predefinita e se si verifica la condizione viene ridefinita col nuovo valore.
    Diversamente (con if ed else) la variabile non viene definita a priori, ma verrà definita nelle istruzioni "se" e "altrimenti". In entrambi i casi dobbiamo avere un valore, quindi perché non impostarne una predefinita e sovrascriverla "solo se" si verifica la condizione?
    -
    (scusami, sarò contorto, è che mi son ritrovato a scrivere il codice ed ho pensato: faccio così o così? e allora chiedevo come sarebbe giusto fare )

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,686

    Predefinito

    Sì però l'assegnazione predefinita, se si verifica la condizione è inutile...

    Comunque ripeto: stiam parlando di "nulla" (a livello di tempi) .

    Ciao!

Regole di scrittura

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