2013-09-03 17 views
33

Gibt es eine Kurzform, um eine Variable etwas zuzuordnen, wenn es in PHP nicht existiert?PHP Kurzschrift für isset()?

if(!isset($var) { 
    $var = ""; 
} 

Ich mag so etwas wie

$var = $var | ""; 
+1

Ist '$ val = isset ($ var)? $ var: ''; 'Der Job für dich? –

+2

Ich fand diesen Beitrag sehr nützlich: http://davidwalsh.name/php-shorthand-if-else-ternary-operators – Pathros

+0

Besseres Original zu diesem Duplikat: [Der beste Weg, um eine Variable einen Standardwert zu geben (simulieren Perl ||, || =)] (http://stackoverflow.com/q/5972516/2157640) – Palec

Antwort

109

Update für PHP 7 (dank shock_gone_wild)

PHP 7 führt den so genannten null Koaleszierstruktur Operator die das vereinfacht tun unter den folgenden Anweisungen:

$var = $var ?? "default"; 

Vor PHP 7

Nein, es gibt keine speziellen Operator oder spezielle Syntax für diese. Sie können jedoch den ternären Operator verwenden:

$var = isset($var) ? $var : "default"; 

Oder wie folgt aus:

isset($var) ?: $var = 'default'; 
+1

Hier ist ein Link zu den neuen Funktionen von PHP7 (einschließlich Null-Koaleszenz-Operator): http://php.net/manual/en/migration70 .new-features.php – kurdtpage

+1

Zusätzlich zu Zuweisungsanweisungen kann dieser Operator auch in Funktionsargumenten verwendet werden. –

+3

Funktioniert nicht mit Arrays. '$ Attribut ['Hinweis'] ?? '' '** Undefinierter Index: Hinweis ** –

16

können Sie neue verwenden ternäre Operator (PHP 5.3+)

isset($var) ?: $var = ""; 

Oder für ältere Version:

$var = isset($var) ? $var : ""; 
+5

Wenn '$ var' existiert und Wert hat, überschreiben Sie es mit dem Wert' true'. Diese 2 Beispiele sind nicht gleich. –

+2

Sie haben Recht. Bearbeitet, danke. –

+2

Ich bin mir nicht sicher, wer Sie abgelehnt hat, aber ich habe Sie zurückgebracht, das ist eine hilfreiche Antwort, danke. – brentonstrine