Php 可以从表单中发布小数吗?
我试图得到表格上公布的数字的倒数Php 可以从表单中发布小数吗?,php,Php,我试图得到表格上公布的数字的倒数 <select name="inverse_num"> <option value="2">2 </option> <option value="1">1 </option> <option value="1/2">1/2 </option> <option value="1/3">1/3 </option> </select> 为什么会发生
<select name="inverse_num">
<option value="2">2 </option>
<option value="1">1 </option>
<option value="1/2">1/2 </option>
<option value="1/3">1/3 </option>
</select>
为什么会发生这种情况…因为从逻辑上讲,我发布的是相同的值。请建议
您只能发布表单中的文本。
PHP不关心变量是否包含字符串或数字,它将在它们之间进行转换。
PHP不会解析看起来像方程式的文本。
您可以按照以下思路做一些事情:
function simple_fractions ($value) {
if (is_numeric($value)) {
return $value;
}
preg_match('/^(\d+)\/(\d+)$/', $value, $matches);
if ($matches[1] && $matches[2]) {
return $matches[0] / $matches[1];
}
if ($matches[1] == 0) {
return 0;
}
return false;
}
您只能发布表单中的文本。
PHP不关心变量是否包含字符串或数字,它将在它们之间进行转换。
PHP不会解析看起来像方程式的文本。
您可以按照以下思路做一些事情:
function simple_fractions ($value) {
if (is_numeric($value)) {
return $value;
}
preg_match('/^(\d+)\/(\d+)$/', $value, $matches);
if ($matches[1] && $matches[2]) {
return $matches[0] / $matches[1];
}
if ($matches[1] == 0) {
return 0;
}
return false;
}
你的两个表达:
$my_inverse=1/($_POST[inverse_num]); // array keys shall be quoted
$my_inverse=1/(1/2);
实际上是:
$my_inverse=1/"1/2";
$my_inverse=1/(1/2);
这也解释了结果
如果改为发送字符串0.5,那么PHP将按预期处理它,顺便说一句。您的两个表达式:
$my_inverse=1/($_POST[inverse_num]); // array keys shall be quoted
$my_inverse=1/(1/2);
实际上是:
$my_inverse=1/"1/2";
$my_inverse=1/(1/2);
这也解释了结果
如果改为发送字符串0.5,那么PHP将按预期处理它。顺便说一句,用小数代替分数怎么样?
e、 g.0.5用小数代替分数怎么样?
e、 g.0.5昆汀有一个可能的解决方案 然而,我认为另一个更好:
<select name="inverse_num">
<option value="a">2 </option>
<option value="b">1 </option>
<option value="c">1/2 </option>
<option value="d">1/3 </option>
</select>
等等
这个方法并不复杂。昆汀有一个可能的解决方案 然而,我认为另一个更好:
<select name="inverse_num">
<option value="a">2 </option>
<option value="b">1 </option>
<option value="c">1/2 </option>
<option value="d">1/3 </option>
</select>
等等
这个方法并不复杂。您的值是以文本形式发布的,而不是以数字形式发布的。如果您添加一个1*$\u POST['inverse\u num'],该怎么办?还有一个PHP类可用于此操作。如果你的数学在任何阶段变得稍微复杂一点,可能会有用。更多信息:您的值是以文本形式发布的,而不是以数字形式发布的。如果您添加一个1*$\u POST['inverse\u num'],该怎么办?还有一个PHP类可用于此操作。如果你的数学在任何阶段变得稍微复杂一点,可能会有用。这里有更多关于它的信息:假设值总是相同的,或者最多从这个代码中修改…@ChaimChaikin-他的代码使用带有下拉框的静态HTML。。。他们是唯一的选择。这就是为什么这是一个如此简单的解决方案。。。不过,上面的一种方法是有效的。没错,有时候,即使代码是动态生成的,人们也只发布静态HTML。假设值总是相同的,或者最多根据此代码修改…@ChaimChaikin-他的代码使用带有下拉框的静态HTML。。。他们是唯一的选择。这就是为什么这是一个如此简单的解决方案。。。但是上面的方法是有效的。的确,有时人们只发布静态HTML,即使代码是动态生成的。