我有一个方法fetch_widgets
,它从(MySQL)数据库中获取小部件。我传递了$options
数组,因此我可以有选择地添加WHERE
和JOIN
子句,添加/删除列等。
例如:
$options = array();
$options[] = 'include_disabled';
$options[] = 'include_tag_ids';
$options['start_date'] = '2011-01-01';
$options['end_date'] = '2011-01-31';
在fetch_widgets
中,我使用以下任一方法检查选项:
if(array_key_exists('start_date',$options)) { ... }
或:
if(in_array('include_tag_ids',$options)) { ... }
取决于该选项是否被激活只是存在(例如include_disabled
)或具有键和值(例如end_date
)。
我遇到了困难,因为当in_array
数组包含键控和非键控值时,$options
会得到奇怪的结果。任何人都可以对此有所了解吗?
答案 0 :(得分:5)
如果您需要一致的行为,请不要混合/匹配键控和非键控数组。
相反,做这样的事情:
$options = array();
$options['include_disabled'] = true;
$options['include_tag_ids'] = true;
$options['start_date'] = '2011-01-01';
$options['end_date'] = '2011-01-31';