2013-05-07 64 views
3

我有一个值作为数字。例如,502. 我想编写一个php if语句,如果该值小于或大于某个数字,或者在一个范围内,将显示一些文本。如果值大于/小于xyz

E.g. 号码是502,文本会说: “介于500-600” 数为56,文本会说: “介于0-60” 等

到目前为止,我有这样的:

<?php $count=0;?> 
<?php $board = getUserBoard($userDetails['userId']);?> 
<?php if(is_array($board)):?> 
<?php $boardCount = count($board);?> 
<?php foreach($board as $key=>$value):?> 
<?php 
$boardPin = getEachBoardPins($value->id); 
$count = $count + count($boardPin); 
?> 
<?php endforeach?> 
<?php endif?> 

这给了我一个号码:

<?php echo $count;?> 

我试图写...

<?php if(($count)): => 500 ?> 
Over 500 
<?php endif ?> 

但我不断遇到错误。

我想创建一个列表,如果可能的话,用elseif语句表示不同的数字范围。

E.g.

0-50,51-250,251-500等

任何人都可以帮助我吗?

谢谢。

+2

为什么要将每个语句放在不同的PHP块中?他们在档案里的不同位置? – Pietu1998 2013-05-07 14:31:27

+0

你知道你不需要在<?中包含每个php命令。分开标记,对吗?文件的开始/结束是好的 – user151496 2013-05-07 14:34:17

+0

@Pietu,这是写脚本的方式。它从脚本中其他位置定义的预设变量中调用。这是一个Pinterest克隆。 在dognose,我试过谷歌,但我不知道要使用什么关键字,这就是为什么我在这里问我在哪里可以概述我正在寻找什么。 – 2013-05-07 14:34:40

回答

6

在PHP if conditions的sanest,最简洁和最广泛使用的语法是:

if($value >=500 && $value <=600) 
{ 
    echo "value is between 500 and 600"; 
} 
+0

谢谢, 这对我有用。 我不知道为什么每行都包含在php标签中,这是他们编写脚本的人决定去做的方式。我个人认为它是不必要的,但是它通过脚本存在于每个文件中,所以我也养成了习惯,并且也是这样写的。 – 2013-05-07 14:41:18

+0

你只需要打开和关闭php标签,如果你打算在它们之间有一些非php行。阅读关于脚本基本用法的更多信息,慢慢地,你会更好地理解它。另一种方法是检查一些开源项目源代码,以查看格式和使用最佳实践 – raidenace 2013-05-07 14:45:55

1

我写了这样的事情在几年前(可能是一个更好的方式来做到这一点):

function create_range($p_num, $p_group = 1000) { 
    $i = 0; 

    while($p_num >= $i) { 
     $i += $p_group; 
    } 

    $i -= $p_group; 

    return $i . '-' . ($i + $p_group - 1); 
} 

print 'The number is between ' . create_range(502, 100) . '.'; 

它会说500-599,但您可以根据自己的需要进行调整。

+0

如果值处于一个范围内,那么这与“if”语句测试有什么关系? – 2013-05-07 14:35:34

+0

不知道你在问什么。那家伙说他想要一些东西,如果“数字是502,文字会说:'在500-600之间”。这或多或少地这样做。 – Langdon 2013-05-07 14:38:32

+0

所以我只是这样做:'if(create_range(499,100))',如果499不在500和600之间,那么它的计算结果为false? – 2013-05-07 14:43:21

1

我不知道你需要什么,但这里是我明白你问:

function getRange($n, $limit = array(50, 250, 500)) { // Will create the ranges 0-50, 51-250, 251-500 and 500-infinity 
    $previousLimit = 0; 
    foreach ($limits as $limit) { 
    if ($n < $limit) { 
     return 'Between ' . ($previousLimit + 1) . ' and ' . $limit; //Return whatever you need. 
    } 
    $previousLimit = $limit; 
    } 
    return 'Greater than ' . $previousLimit; // Return whatever you need. 
} 

echo getRange(56); // Prints "Between 51 and 250" 
echo getRange(501); // Prints "Greater than 500" 
echo getRange(12, array(5, 10, 15, 20)); // Prints "Between 11 and 15" 
1
function getRange($number){ 
    $length=strlen($number); 
    $length--; 
    $r1=round($number,-$length); 
    if ($r1>$number){ 
     $r2=$r1-pow(10,$length); 
    return ''.$number.' value is between '.$r2.'-'.$r1; 
    } 
    else { 
    $r2=$r1+pow(10,$length); 
     return ''.$number.' value is between '.$r1.'-'.$r2; 
    } 
} 

试试这个。

1
if ($count >= 0 && $count < 100) { 
    echo 'between 0 et 99'; 
} elseif ($count < 199) { 
    echo 'between 100 and 199'; 
} elseif { ... 

}elseif ($count < 599) { 
    echo 'between 500 and 599'; 
} else { 
    echo 'greater or equal than 600'; 
}