php 中的布尔值到整数
Boolean to integer in php
我目前正在表单中使用复选框,并希望将复选框值保存到 int 类型的数据库列中。实现这一目标的最有效方法是什么。我已经尝试将变量转换为 (int)
但这还没有为我做任何事情。
HTML: <input name='active' id='active' ng-model='formData.active' ng-init='formData.active=true' type="checkbox"> Active </br>
PHP:
$active = (int) $_POST['active'];
echo $active;
echo $_POST['active'];
Output:
0
true
注意:我试图在没有糟糕的 if 语句或开关的情况下实现它。
复选框的 $_POST
变量只有在复选框被选中时才会被设置,所以你可以使用这样的东西:
$active = isset($_POST['active']) ? 1 : 0;
我怀疑您得到的是字符串 "true" 而不是布尔值 "true",在这种情况下您可以使用类似的结构:
$active = $_POST['active'] === "true" ? 1 : 0;
中的解决方案应该有效,
但如果您正在寻找内置功能,请尝试
intval
在输入标签中添加一个值属性
<input name='active' value='1' ...>
现在它应该可以按您需要的方式工作了。
在 PHP 手册中查找可以找到以下代码:
filter_var('FALSE', FILTER_VALIDATE_BOOLEAN, array('flags' => FILTER_NULL_ON_FAILURE)
首先,您在 HTML 中的输入是 "sticky",而在 PHP 中您测试的是 "active"。
但无论如何,请尝试 PHP 以下测试:
if (isset($_POST['sticky']) and ($_POST['sticky']=='on')) $active=1;
else $active=0;
我目前正在表单中使用复选框,并希望将复选框值保存到 int 类型的数据库列中。实现这一目标的最有效方法是什么。我已经尝试将变量转换为 (int)
但这还没有为我做任何事情。
HTML: <input name='active' id='active' ng-model='formData.active' ng-init='formData.active=true' type="checkbox"> Active </br>
PHP:
$active = (int) $_POST['active'];
echo $active;
echo $_POST['active'];
Output:
0
true
注意:我试图在没有糟糕的 if 语句或开关的情况下实现它。
复选框的 $_POST
变量只有在复选框被选中时才会被设置,所以你可以使用这样的东西:
$active = isset($_POST['active']) ? 1 : 0;
我怀疑您得到的是字符串 "true" 而不是布尔值 "true",在这种情况下您可以使用类似的结构:
$active = $_POST['active'] === "true" ? 1 : 0;
但如果您正在寻找内置功能,请尝试
intval
在输入标签中添加一个值属性
<input name='active' value='1' ...>
现在它应该可以按您需要的方式工作了。
在 PHP 手册中查找可以找到以下代码:
filter_var('FALSE', FILTER_VALIDATE_BOOLEAN, array('flags' => FILTER_NULL_ON_FAILURE)
首先,您在 HTML 中的输入是 "sticky",而在 PHP 中您测试的是 "active"。 但无论如何,请尝试 PHP 以下测试:
if (isset($_POST['sticky']) and ($_POST['sticky']=='on')) $active=1;
else $active=0;