2010-05-25 11 views
8

Cosa significa il simbolo : in PHP?Che cos'è ":" in PHP?

+9

La prego di inviare il codice che appare in? Potrebbe avere significati diversi, a seconda del contesto. – FrustratedWithFormsDesigner

+9

Quando si fanno domande si prega di essere specifici. Spesso, questo significa dare un esempio di codice. – Armstrongest

+0

Scope Resolution Operator (:) http://php.net/manual/en/language.oop5.paamayim-nekudotayim.php –

risposta

31

PHP offre una sintassi alternativa per alcune delle sue strutture di controllo; vale a dire, se, mentre, per, foreach, e passare. In ogni caso, la forma di base della sintassi alternativa è quella di cambiare la parentesi di apertura in due punti (:) e la parentesi chiusa in endif ;, endwhile ;, endfor ;, endforeach ;, o endswitch ;, rispettivamente.

+0

great, thanks .. –

7

Sto indovinando che stai vedendo questa sintassi:

print ($item ? $item : ''); 

Questa è una breve forma di if/else. Il ? è il se, e il: è il contrario.

1

Può significare un numero di cose. Si può significare il ternary operator, ?:.

1

Come altri hanno pubblicato, probabilmente stai guardando la logica ternaria.

Tuttavia, se due di questi sono insieme, è lo scope resolution operator, utilizzato per riferire metodi di stato/proprietà e costanti.

20

Si incontrano anche : se si utilizza il alternative syntax for control structures:

<?php 
if ($a == 5): 
    echo "a equals 5"; 
    echo "..."; 
elseif ($a == 6): 
    echo "a equals 6"; 
    echo "!!!"; 
else: 
    echo "a is neither 5 nor 6"; 
endif; 
?> 

O come già menzionato la ternary operator:

$action = (empty($_POST['action'])) ? 'default' : $_POST['action']; 

(Esempi tratti dalla documentazione)


Modifica: In qualche modo non ho visto che la sintassi alternativa era già menzionata, deve essere troppo stanco;) Comunque, lo lascerò così com'è, poiché penso che un esempio reale e un link alla documentazione siano più utili di un semplice testo

+0

Il terzo posto sarebbe il 'foreach ($ entry: $ list)' cosa non lo sarebbe? – Felix

+0

Potrebbe aiutarmi per favore. Sono dubbioso sull'uso di ":" nel seguente contesto (Laravel). ['email' => 'required | email | unique: email, users'] – Michel

+0

@Michel: Non so Laravel, mi dispiace. Dal punto di vista di PHP, ':' è parte di una stringa quindi non ha alcun significato speciale. –

2

Shorter if:

$val = (condition) ? "condition is true" : "condition is false";