Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Operatore ternario

  1. #1

    Operatore ternario

    Ho un problema con l'operatore ternario, l'errore è il seguente:

    Parse error: syntax error, unexpected T_RETURN in /membri/rikkardo/testing_php/calendarioperpetuo.inc on line 18
    Non si aspetta l'istruzione "return", ma perché?

    Linee 17, 18 e 19:

    Codice PHP:
    function bisestile($fv_anno) {
        ((
    $fv_anno == && $fv_anno 100 != 0) || $fv_anno 400 == 0) ? return true : return false;

    La funzione controlla se l'anno è bisestile, con un'espressione trovata su internet, so che è giusta perché l'ho testata in questo modo:

    Codice PHP:
    if ((2008 == && 2008 100 != 0) || 2008 400 == 0) { echo "ok"; } else { echo "no"; } 
    E ovviamente dava ok, e l'ho testato nello stesso modo su anni non bisestili e su primi anni dei secoli (2000 = ok, 2100 = no ecc...)...

    Cosa c'è che non va nella funzione? Non ditemi di usare checkdate, voglio creare una cosa mia al 100%, sto implementando l'algoritmo del calendario perpetuo.

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    date già restituisce se un anno è bisestile, ma capisco che non vuoi usare funzioni base di php (per un motivo che onestamente mi sfugge)

    comunque prova così:

    return 2 == 2 ? true : false;

  3. #3
    devi fare

    return (($fv_anno % 4 == 0 && $fv_anno % 100 != 0) || $fv_anno % 400 == 0) ? true : false;


    o ancora meglio, dato che ($fv_anno % 4 == 0 && $fv_anno % 100 != 0) || $fv_anno % 400 == 0) è una espressione che ritorna di suo true o false

    return ($fv_anno % 4 == 0 && $fv_anno % 100 != 0) || $fv_anno % 400 == 0);

  4. #4
    Vero, grazie... Per la storia di non usare le funzioni built-in l'ho spiegato nel primo messaggio. Non sei soddisfatto della mia motivazione? Allora ti dico che è per studio, per imparare, per approfondire...

    Grazie per le risposte!

  5. #5
    non ne sono certo ma prova così:
    Codice PHP:
    function bisestile($fv_anno
        { 
        return ((
    $fv_anno == && $fv_anno 100 != 0) || $fv_anno 400 == 0) ? true false


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.