为什么这样做:
function myfunction($v) {
$query = $v['host'] == '1';
return ( $query );
}
$output = array_filter($recordset,myfunction);
print_r($output);
这个试图用变量完成同样事情的脚本不是吗?
$column1 = 'host';
$value1 = 1;
$query1 = '$v[\''.$column1.'\'] == '.$value1;
function myfunction($v) {
$query = $GLOBALS['query1'];
return ( $query );
}
$output = array_filter($recordset,myfunction);
print_r($output);
任何帮助都会很棒。谢谢!
答案 0 :(得分:1)
声明$query = $v['host'] == '1';
未将$query
设置为$v['host'] == '1'
表达式。它评估 $v['host'] == '1'
并将$query
设置为表达式的值,其为1或0,具体取决于$v['host']
是否为'1'
等于$output = array_filter($recordset,myfunction);
。
{{1}}有效,因为array_filter
旨在为其第二个参数采用用户定义的PHP回调函数。
动态编码实际上只能在PHP中使用eval
函数(非常危险!)或使用面向对象的object overloading结构实现。
答案 1 :(得分:-1)
你可以使用全局$ query1吗?