Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Riferimenti (&) e Operatore ternario (?:)

    ma possibile che non si possa assegnare una variabile per riferimento in base all'esito di un operatore ternario? :master:

    codice:
    $VAR = !empty($varA) ? &$varA : &$varB;
    come si fa? il fatto è che ne ho 2 di operatori ternari e non volevo usare gli IF...

    ciao,
    jack.

  2. #2

    Re: Riferimenti (&) e Operatore ternario (?:)

    Originariamente inviato da mdsjack
    ma possibile che non si possa assegnare una variabile per riferimento in base all'esito di un operatore ternario? :master:

    codice:
    $VAR = !empty($varA) ? &$varA : &$varB;
    come si fa? il fatto è che ne ho 2 di operatori ternari e non volevo usare gli IF...

    ciao,
    jack.
    aggiungi le parentesi
    Codice PHP:
    $VAR = (!empty($varA)) ? $varA $varB
    a me funge
    There are 10 types of people in the world: Those who understand binary, and those who don't.

  3. #3
    ok, ma io volevo passare per riferimento... allora non funziona.

  4. #4
    Originariamente inviato da mdsjack
    ok, ma io volevo passare per riferimento... allora non funziona.
    ho preso una svista, sorry....
    si in effetti da errore

    edit
    dal manuale:

    Nota: Si noti che l'operatore ternario è un'istruzione, e non viene valutato come variabile, ma come risultato di un'istruzione. Questo è importante da sapere nel caso si desideri restituire una variabile per riferimento. La riga return $var == 42 ? $a : $b; in una funzione che restituisce per riferimento non funzionerà e, nelle ultime versioni di PHP, genererà un warning.
    There are 10 types of people in the world: Those who understand binary, and those who don't.

  5. #5
    il ternario è praticamente un if else ... tanto vale fare una cosa così
    codice:
    <?php
    function ternario(&$a, &$b) {
    	if(!empty($a)) $VAR = &$a; else $VAR = &$b;
    	return $VAR;
    }
    $varA = 'a';
    $varB = 'b';
    $VAR = &ternario($varA,$varB);
    echo $VAR;
    ?>
    o no ? :master:
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  6. #6
    credo di sì, ma se fai così perdi il vantaggio del ternario di scrivere meno roba...

  7. #7
    Originariamente inviato da mdsjack
    credo di sì, ma se fai così perdi il vantaggio del ternario di scrivere meno roba...
    veramente è cosi' che scrivi di meno ..

    $VAR=&ternario($varA,$varB);


    contro


    $VAR=!empty($varA)?$varA:$varB;


    ottenendo però il risultato sperato, assegnazione arbitraria per riferimento .... o no ?
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  8. #8
    il fatto è che a me servirebbero più ternari, per quello dico scrivi meno.
    forse costruendo una funzione che assegna per riferimento ad argomenti variabili partendo dal primo...

    ma per guadagnarci in termini di calcoli, dovresti chiamarla molte volte. a me serviva un ternario per pagina

    adesso magari la faccio, poi la posto, sia mai che serva.


    edit: ho detto una tavanata... è infattibile anche la tua andr3a...

  9. #9
    conviene scrivere una funzione per una cosa così particolareggiata? :master:
    penso di no, a meno che non la si utilizzi un bel po di volte...

    altrimenti dovresti già raddoppiare i paramentri per differenziare le assegnazioni...fermo restando il controllo empty....sennò ciccia...ne serve un'altra di funzione....

    secondo me se si può si usa il ternario altrimento l'if
    There are 10 types of people in the world: Those who understand binary, and those who don't.

  10. #10
    la schiaffi in un file esterno, tipo quello di connessione al db o il config o quello che vuoi e te la ritrovi in auto su tutte le pagine php


    per il discorso variabili è un pò un casino, se non le dichiari ed usi func_get_args o simili non hai il passaggio per riferimento ... se usi variabili "a mano" non puoi avere uno stato di default utile

    function pippo(&$a,&$b,&$c = null) { ... }

    non puoi farlo ... bel rompicapo , evita il riferimento, usa ternari che su php5 saranno comunque per riferimento, sul 4 ... beh, cavoli loro
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

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 © 2024 vBulletin Solutions, Inc. All rights reserved.