我在下面有此代码,我想知道为什么要在第一个“ if”中输入,例如,如果在$ temp变量中有一个数字,例如500、5、70等。我只想过滤FLOAT号码,就像过滤器说的那样
$temp = trim(htmlspecialchars(strip_tags($_REQUEST["temp"]), ENT_QUOTES, "UTF-8"));
$se = trim(htmlspecialchars(strip_tags($_REQUEST["select"]), ENT_QUOTES, "UTF-8"));
if (!empty($temp) && filter_var($temp, FILTER_VALIDATE_FLOAT)) {
if ($se == "celsius" && $temp >= -273.15) {
$result = round(32+(1.8*$temp), 2);
echo "$temp ºC = $result ºF";
} else if ($se == "fahrenheit" && $temp >= -459.67) {
$result = round(($temp-32)/1.8, 2);
echo "$temp ºF = $result ºC";
} else {
echo "El valor introducido no puede menor que -273,15 si es Celsius, o menor que -459,67 si
es Fahrenheit";
}
} else {
echo "Rellene el campo con un número decimal, por favor";
}
答案 0 :(得分:1)
int
实际上会将一个值从string
,float
转换为一个filter_var(400, FILTER_VALIDATE_FLOAT)
filter_var('400', FILTER_VALIDATE_FLOAT)
数字。这意味着如果您致电:
400.0
这两个调用的结果都是浮点数if (is_numeric($temp) && strpos($temp, '.') !== false) {
}
。
如果您实际上需要查看给定的数字是否有小数点分隔符,则可以像这样进行检查:
const listItems = (
<ul>
{desclist.map((point, index) =>
if (point.length < 2) {
<li key={index}>
<p>{point}</p>
</li>
)}
}
</ul>
);
return listItems;
}
答案 1 :(得分:0)
我现在无法使过滤器正常工作,我不确定这种情况下的原因。
但是尝试使用PHP的is_float()
函数
赞:
if (!empty($temp) && is_float($temp) {
答案 2 :(得分:0)
可能是由于混合数据类型。用var_dump
检查以验证数据类型。
使用is_float()
代替filter_var