2009-12-08 4 views

Répondre

4

Je ne crois pas, mais il y a min() et max():

function check($lower, $val, $upper) { 
    return min(max($lower, $val), $upper); 
} 
0

Je ne sais pas d'un, mais vous pouvez utiliser min() et max(). En passant - il semble que ce que vous demandez vraiment est le milieu de trois nombres entiers. De toute façon, le code ressemblerait à ceci:

function midValue($lowerBound, $upperBound, $value) { 
    return (min($upperBound, max($lowerBound, $myValue))); 
} 
0
<?php 

echo(check(20, 40, 50)); 

function check($lower,$val, $upper){ 
if ($val>$lower && $val<$upper){ 
return $val; } 
else if ($val<=$lower){ 
return $lower;} 
else if ($val>=$upper){ 
return $upper;} 
} 

est valide php qui fonctionne. Je ne vois pas beaucoup d'un problème ...

+0

Le problème est qu'il y a trop de lignes de code pour trop peu de fonctionnalités. Si vous utilisez 6 lignes de code pour chaque fonction où une ligne suffirait, vos programmes seront bientôt gonflés de façon incontrôlable. –

2

peut pas penser à une seule fonction pour cela dans MySQL, mais cet idiome ferais la même chose:

GREATEST(@lower, LEAST(@val, @upper)) 
0

Il peut fonctionner comme vous le souhaitez , en ajoutant une touche de documentation, préférablement dans le format de type Docbloc, il est bon de savoir exactement ce que vous faites. Il ajoute une touche professionnelle. Je suppose que Tom a factorisé votre code pour vous.

Un pouce-vers le haut pour la réponse de MYSQL, gentil! :)