Den ternära operatören i PHP kan du skriva enkelt " if-else " uttalanden med en kodrad i stället med två till fem rader kod som kan krävas för en " if-else " uttalande . Det kan bidra till att förkorta kodning tid och kan göra ett program mer lättbegripligt och mer hanterbar . Den ternära operatören kommer utvärdera ett villkorligt uttryck och returnera resultatet av ett uttalande om det är sant och ett annat uttalande om det är falskt . Den ersätter detta uttalande : if ( $ x < 0 ) { $ result = " negativ " ; } else { $ result = " inte negativ " ;} med detta uttalande : $ result = $ x < 0 ? " negativ " : " inte negativ " , När du använder ternära operatören , följ dokumenterade syntaxen för uttryck och försiktig när du skapar mer komplexa uttryck som involverar kapslade uttalanden och variabler skickas med referens . Syntax
Konstruera ett uttalande med ternära villkorlig operatören använder ett villkorligt uttryck , följt av ett frågetecken och ett uttalande att utvärdera om det villkorliga uttrycket är sant , följt av ett kolon och ett uttalande att utvärdera om det villkorliga uttrycket är falskt . Exempelvis tilldelar följande uttalande antingen sant eller falskt att " is_teenager " variabel baserad på en persons ålder :
$ is_teenager = ( $ ålder > = 13 && $ åldern < = 19 ) ? true : false; Addera utelämna mitt
PHP version 5.3 eller senare , kan du skapa en ännu mer förkortat uttryck med hjälp av ternära operatören genom att utelämna mitten av uttalande och använda det första uttrycket som både det villkorliga uttrycket och det värde som ska returneras om det villkorliga uttrycket är sant . Skapa en villkorlig uttalande , följt av ett frågetecken och ett kolon , följt av uttalandet att utvärdera om det villkorliga uttrycket är falskt . Om det villkorliga uttrycket är sant , är resultatet true . Till exempel returnerar följande uttryck gäller om en persons ålder är mindre än 21 och i annat fall false
$ ålder < 21 : . ? False;
Nesting Uttalanden
skapa inte komplicerade uttryck använder nästlade villkorssatser och operatörer ternära . När du gör detta , gör du vanligtvis koden svårare att förstå , svårare att felsöka och svårare att underhålla . Om du kapslar uttalanden , använd parenteser så att det är klart hur det slutliga resultatet som härstammar eller överväga att använda en alternativ struktur som en " if-else " uttalande . Addera Result är ett uttalande
p Om du använder variabler som skickas genom hänvisning med ett ternära operatör , kom ihåg att uttrycken som med operatören är uttalanden , inte variabler . Du kan inte använda en variabel skickas med referens av sig själv som ett uttalande, eftersom det inte har något värde . I PHP 5.3 och senare , kommer du att få en varning om du konstruerar ett uttalande med en enda variabel skickas med referens .