Domanda

  

Eventuali duplicati:    Quali sono gli operatori PHP e “?” “:” chiamato e cosa fanno

http://twitto.org/

<?PHP
    require __DIR__.'/c.php';
    if (!is_callable($c = @$_GET['c'] ?: function() { echo 'Woah!'; }))
        throw new Exception('Error');
    $c();
?>

Twitto utilizza diverse nuove funzionalità disponibili a partire da PHP 5.3:

  1. Il DIR costante
  2. L'operatore?:
  3. funzioni anonimi

  1. Che cosa significa il numero 2 che fare con il :? in PHP 5.3

  2. Inoltre, che cosa si intende per funzioni anonime? Non era che qualcosa che esiste da un po '?

È stato utile?

Soluzione

?: è una forma dell'operatore condizionale che era precedentemente disponibile solo come:

expr ? val_if_true : val_if_false

In 5.3 è possibile lasciare fuori la parte centrale, per esempio expr ?: val_if_false che è equivalente a:

expr ? expr : val_if_false

manuale :

  

Dal PHP 5.3, è possibile omettere la parte centrale del operatore condizionale. ritorna Espressione expr1 ?: expr3 expr1 se expr1 restituisce TRUE, e expr3 altrimenti.

Altri suggerimenti

L'operatore ?: è il condizionale operatore (spesso riferito come l'operatore ternario):

  

Il (expr1) ? (expr2) : (expr3) espressione restituisce expr2 se expr1 restituisce TRUE , e se expr3 expr1 restituisce false .

Nel caso di:

expr1 ?: expr2

L'espressione restituisce il valore di expr1 se expr1 è true e expr2 altrimenti:

  

Dal PHP 5.3, è possibile omettere la parte centrale del operatore ternario. ritorna Espressione expr1 ?: expr3 expr1 se expr1 restituisce TRUE , e expr3 altrimenti.

Guarda qui:

  

Dal PHP 5.3, è possibile omettere la parte centrale del operatore ternario. Espressione expr1:? Rendimenti expr3 expr1 se espressione1 è TRUE, e expr3 altrimenti.

funzioni anonime: No, non esistevano prima 5.3.0 (vedi la prima nota di seguito gli esempi), per lo meno in questo modo:

function ($arg) { /* func body */ }

L'unico modo era create_function(), che è più lento, piuttosto ingombrante e soggetto ad errori (a causa dell'utilizzo di stringhe per le definizioni di funzione).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top