2017-12-11 24 views
0

Ich weiß, es kann eine dumme Frage klingen, aber ich versuche, diesen PHP-Code als eine Zeile zu machen:PHP: wenn sie größer als x, dann x

$value = result_from_a_function(); 
if ($value > $maximum) 
{ 
    $value = $maximum; 
} 

Ist es möglich, ihr eine Zeile zu machen in PHP? So etwas wie

$value = result_from_a_function() [obscure operator] $maximum; 
+2

'Wert $ = ($ value> $ Maximum)? $ maximum: $ something_else; ' – pokeybit

+0

Wie könnte ich nicht über einen ternären Operator nachdenken? : O @ Preds Lösung sieht für mich verständlicher aus, jedenfalls – godzillante

+0

@godzillante Nicht für alle. Es lohnt sich immer, einen Kommentar hinzuzufügen, der beschreibt, was es tut und warum. – Pred

Antwort

9

Die magische Funktion ist MIN

$value = min($value, $maximum) 
3

Ja, verwenden Sie einen ternary operator:

$value = (result_from_a_function() > $maximum) ? $maximum : $something_else; 
0

Ternary Operatoren Make-Code kürzer in einer Zeile thats, warum ich mit ternären Operatoren vorschlagen wie

$message = 'Hello '.($user->is_logged_in() ? $user->get('first_name') : 'Guest'); 

oder nach Ihrem Codeb.

$value = (result_from_a_function() > $max) ? $max: $false_Sataments; 
Verwandte Themen