Visualizzazione dei risultati da 1 a 8 su 8

Discussione: [php]impostare un if

  1. #1

    [php]impostare un if

    Ciao a tutti! sto sclerando per impostare un if!! :robadamatti:

    dunque, ho uno script che realizza un calendario con la possibilità di navigare tra i vari mesi ed i vari anni; in fondo a questo script c'è la scritta 'Visualizza il mese corrente' solo che questa scritta deve vedersi solo se, giustamente, si sta visualizzando un mese che non sia quello corrente.

    Io ho impostato un if come il seguente:
    Codice PHP:
    $flag = (!isset($_GET['month']) || $_GET['month'] <> date("n") || $_GET['year'] <> date("Y")) ? 1
    $flag avrà valore 1 se devo scrivere 'Visualizza il mese corrente' viceversa 0.
    Eppure a me il ragionamento sembra corretto, con la prima parte controllo che il mese non sia settato, oppure (con la seconda parte) che il mese sia diverso da quello corrente, oppure (con la terza) che l'anno sia diverso da quello corrente. Se anche una sola delle tre clausole è vera $flag dovrebbe essere settata a 0...giusto?
    Il fatto di confrontare con date("n") o date("Y") è corretto, perché il mese avrà sempre il formato 1-12 senza eventuali zeri, mentre l'anno avrà sempre il formato con 4 caratteri.

    Sapete dirmi dove sbaglio?Grazie mille a tutti.
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  2. #2
    $flag = (
    !isset($_GET['month']) ||
    $_GET['month'] == date("n") ||
    (isset($_GET['year']) && $_GET['year'] == date("Y"))
    ) ? 0 : 1;

    ciao

  3. #3
    ma non puo fare semplicemente

    $mese = date("m");
    $anno = date("Y");

    if (($_GET['month']== $mese) && ($_GET['year'] == $anno)){
    echo "vai a li";
    }
    else{
    echo "";}

  4. #4
    certo ed è decisamente più semplice, lineare e facile da leggere a distanza di tempo ma...

    a volte uso quella sintassi ma MOLTO raramente proprio per via della difficoltà di lettura.

  5. #5
    ma dici a me? ma dov'È la difficoltà?

  6. #6
    di per se non è difficile ma rende il codice più complesso nella lettura e nella manutenzione.

    scrivere codice vuol dire scegliere di intraprendere una strada piuttosto che un'altra. ognuno sceglie tra quelle che conosce quella che reputa più semplice o funzionale

  7. #7
    beh, grazie...ma non va bene nessuno dei due metodi

    In particolare progalba non posso fare come dici, il valore del mese e dell'anno vengono presi dalla querystring e possono o essere settati entambi o non essere settati entramni o essere settato solo uno e devo racchiudere tutti questi controlli nello stesso if, inoltre devo controllare che se sono settati tutti e due devono essere diversi dalla data corrente.

    Spero di essere stato un pò più chiaro. Se fosse stato così semplice l'avrei risolto pure io penso...magari però è ancora più semplice e mi sto perdendo in un bicchiere d'acqua

    ciao!
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  8. #8
    giusto per dovere di cronaca ho risolto così:

    Codice PHP:
    $flag = (isset($_GET['month']) && ($_GET['month'] <> date("n") || $_GET['year'] <> date("Y"))) ? 0
    Grazie comunque
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.