PHP里function(){function(){}}是什么写法?

public function doMobileSelectUser2()
{
    global $_W, $_GPC;
    //查出已是商家用户
    $sjuser = pdo_getall('cjdc_store', array('uniacid' => $_W['uniacid']), 'admin_id');
    //二维数组转一维
    function i_array_column($input, $columnKey, $indexKey = null)
    {
        if (!function_exists('array_column')) {
            $columnKeyIsNumber = (is_numeric($columnKey)) ? true : false;
            $indexKeyIsNull = (is_null($indexKey)) ? true : false;
            $indexKeyIsNumber = (is_numeric($indexKey)) ? true : false;
            $result = array();
            foreach ((array)$input as $key => $row) {
                if ($columnKeyIsNumber) {
                    $tmp = array_slice($row, $columnKey, 1);
                    $tmp = (is_array($tmp) && !empty($tmp)) ? current($tmp) : null;
                } else {
                    $tmp = isset($row[$columnKey]) ? $row[$columnKey] : null;
                }
                if (!$indexKeyIsNull) {
                    if ($indexKeyIsNumber) {
                        $key = array_slice($row, $indexKey, 1);
                        $key = (is_array($key) && !empty($key)) ? current($key) : null;
                        $key = is_null($key) ? 0 : $key;
                    } else {
                        $key = isset($row[$indexKey]) ? $row[$indexKey] : 0;
                    }
                }
                $result[$key] = $tmp;
            }
            return $result;
        } else {
            return array_column($input, $columnKey, $indexKey);
        }
    }
    $yuser = i_array_column($sjuser, 'admin_id');
    $string = '';
    if ($yuser) {
        foreach ($yuser as $v) {
            $string .= "'" . $v . "',";
        }
        $string = rtrim($string, ",");
    }
    if ($yuser) {
        $sql = " select id,name from " . tablename('cjdc_user') . " where uniacid={$_W['uniacid']}  and id not in ({$string}) and  (name like '%{$_GPC['keywords']}%' || openid like '%{$_GPC['keywords']}%') and name !=''";
    } else {
        $sql = " select id,name from " . tablename('cjdc_user') . " where uniacid={$_W['uniacid']}   and  (name like '%{$_GPC['keywords']}%' || openid like '%{$_GPC['keywords']}%') and name !=''";
    }
    $user = pdo_fetchall($sql);
    echo json_encode($user);
}

题目来源及自己的思路

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

你期待的结果是什么?实际看到的错误信息又是什么?

阅读 3.5k
3 个回答

就是单纯的声明一个函数罢了:

<?php
function test()
{
    function a()
    {
        var_dump(1);
    }
    a();
}
test();
test();

结果:

# php ../test2.php
int(1)
PHP Fatal error:  Cannot redeclare a() (previously declared in xxx:6) in xxx on line 4

就是个方法嵌套啊

图片描述
为什么直接调用a会报错?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题