Che cosa è:? In PHP 5.3? [duplicare]
-
23-09-2019 - |
Domanda
Eventuali duplicati: Quali sono gli operatori PHP e “?” “:” chiamato e cosa fanno
<?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:
- Il DIR costante
- L'operatore?:
- funzioni anonimi
-
Che cosa significa il numero 2 che fare con il :? in PHP 5.3
-
Inoltre, che cosa si intende per funzioni anonime? Non era che qualcosa che esiste da un po '?
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
seexpr1
restituisceTRUE
, eexpr3
altrimenti.
Altri suggerimenti
L'operatore ?:
è il condizionale operatore (spesso riferito come l'operatore ternario):
Il
(expr1) ? (expr2) : (expr3)
espressione restituisceexpr2
seexpr1
restituisce TRUE , e seexpr3
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
seexpr1
restituisce TRUE , eexpr3
altrimenti.
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).