- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
跟进此question and answer ,我决定仅接受 boolean 值 true 和 false,不,甚至接受其他开发人员/用户输入的 null
。
$default = array(
"category_id" => null,
"category" => false,
"randomise" => false
);
$config = array(
"category_id" => 17,
"randomise" => false,
"category" => null
);
function process_array($default,$config)
{
# Set empty arrays for error & items.
$error = array();
$items = array();
# Loop the array.
foreach($default as $key => $value)
{
if (is_bool($default[$key]) && isset($config[$key]))
{
if ($config[$key] === null) $error[] = '"'. $key.'" cannot be null.';
# Make sure that the value of the key is a boolean.
if (!is_bool($config[$key]))
{
$error[] = '"'. $key.'" can be boolean only.';
}
}
if(isset($config[$key]) && !is_array($value))
{
$items[$key] = $config[$key];
}
elseif(isset($config[$key]) && is_array($value))
{
$items[$key] = array_merge($default[$key], $config[$key]);
}
else
{
$items[$key] = $value;
}
}
# Give a key to the error array.
$error = array("error" => $error);
# Merge the processed array with error array.
# Return the result.
return array_merge($items,$error);
}
print_r(process_array($default,$config));
但我得到的结果是,
Array
(
[category_id] => 17
[category] =>
[randomise] =>
[error] => Array
(
)
)
我追求的结果,
Array
(
[category_id] => 17
[category] =>
[randomise] =>
[error] => Array
(
[0] => "category" cannot be null.
)
)
所以我认为下面的这一行应该有效,但我不明白为什么它不起作用。我尝试使用 is_null
但仍然无法正常工作。知道我做错了什么以及如何解决这个问题吗?
if ($config[$key] === null) $error[] = '"'. $key.'" cannot be null.';
最佳答案
我相信 null
值不会通过 if (is_bool($default[$key]) && isset($config) 中的
,因此它会跳过整个 block 。isset()
测试[$key]))
我认为您需要进行一些重构才能解决这个问题。也许可以从 if 中取出 isset 并将其移至 null 测试?
if (!isset($config[$key]) || is_null($config[$key])) $error[] = '"'.$key.'"不能为 null。';
关于PHP is_null : Only boolean true and false, 甚至不是 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12477095/
dispatch_address_postcode 不是强制性的,即使它是空白的,它仍然会运行: if (!is_null($_POST['personal_info_first_name']) &&
我在捕获值为空的数据库结果时遇到问题。我尝试了不同的角度(这一切都在 while($row = mysql_fetch_array($results)){ 循环): if(is_null($thisd
运行 CodeSniffer PHP 样式测试时出现以下错误: The use of function is_null() is forbidden Squiz.PHP.ForbiddenFun
我有一个 if 语句来检测用户是否登录并属于某个部门。这真的很简单。 有一个 Permissions.php 类,如果登录或返回 NULL,则返回 User 对象。 protected $user =
如果我正确理解 is_null,PHP 面向对象解决方案中的一个示例似乎有缺陷。 书中示例代码如下: if (!is_null($required) && !is_array($required))
这个问题在这里已经有了答案: What's the difference between is_null($var) and ($var === null)? (8 个回答) 关闭 7 年前。 在P
这个问题在这里已经有了答案: What's the difference between is_null($var) and ($var === null)? (8 个回答) 关闭 7 年前。 在P
isset 判断变量是否已存在 empty 判断变量是否为空或为0 is_null 判断变量是否为NULL 变量 empty is_null
在下面的代码中,当 $start_limit 和 $end_limit 为 FALSE 时,应该运行 A。相反,B 正在发生。我已经用 var_dump 测试过这两个变量都是 FALSE。 我使用 i
假设我正在创建一个 session 类,相关实现如下: public class Session() { private $id; private $user; } 如果 sessio
有关 PHP 的 empty(),isset() 还有 is_null() 这三个函数的用法讨论得已经很多了,而且很多资料也未必能说得很清楚。这里再重复一次,但不是从概念去说,直接用程序例子来说话,
我正在创建一个评论 api 但当我运行服务器时出现此错误: FieldError 在/相关字段得到无效查找:is_null 我不知道怎么解决。我正在创建一个嵌套的评论 api。这是我的代码: #序列化
我正在尝试编写一个脚本,当用户上传文件但未输入名称时,会返回错误。我尝试过使用 is_null、empty 和 isset,但它们都不起作用。例如,下面,即使输入了名称,is_null 也会返回错误。
我提供了代码,其中第一个参数是图像路径或 MySQL 数据库中的默认 NULL, function formatImage($img = NULL, $alt = NULL) {
我已经用这些字段创建了模型: field_1 , field_2, field_3, ... , field_n 我想过滤这k个字段的所有对象: field_1 , field_2, .... , f
我正在尝试编写一个脚本,当用户上传文件但未输入名称时会返回错误。我尝试过使用 is_null、empty 和 isset,但它们都不起作用。例如,在下面,即使输入了名称,is_null 也会返回错误。
跟进此question and answer ,我决定仅接受 boolean 值 true 和 false,不,甚至接受其他开发人员/用户输入的 null。 $default = array(
有人可以解释一下这个 MySQL 查询及其作用吗? 据我了解,它执行以下操作: 选择发票表中没有条目的invoices_charge发票id。这是正确的吗? SELECT DISTINCT invoi
我正在尝试提取 JDBC 数据库驱动程序的数据库元数据。 现在我面临着文档的一部分,我无法向自己解释: 方法 DatabaseMetaData.getColumns(...); ( JavaDoc )
这有什么区别吗…… if (is_null($var)) { do_something(); } 还有这个? if ($var === null) { do_something();
我是一名优秀的程序员,十分优秀!