为什么可以';我不能用php将数组项传递到函数中吗?

为什么可以';我不能用php将数组项传递到函数中吗?,php,wordpress,Php,Wordpress,我的数组中的项目似乎没有传递到My'resolve'=>函数中。现在函数返回fail。如果我用数组项替换$meta,那么它就可以工作。我正在尝试获取GraphQL的元值,不想为每个字段创建一个函数 add_action( 'graphql_register_types', function() { $metas = array('phone', 'city', 'state', 'zip'); foreach($metas as $

我的数组中的项目似乎没有传递到My'resolve'=>函数中。现在函数返回fail。如果我用数组项替换$meta,那么它就可以工作。我正在尝试获取GraphQL的元值,不想为每个字段创建一个函数

        add_action( 'graphql_register_types', function() {
            $metas = array('phone', 'city', 'state', 'zip');
            foreach($metas as $meta){
                register_graphql_field( 'Location', $meta, [
                    'type' => 'String',
                    'description' => __( 'The post data', 'wp-graphql' ),
                    'resolve' => function($post, $meta) {
                    $GQL_data = get_post_meta( get_the_ID(), $meta, true);
                    return ! empty( $GQL_data  ) ? $GQL_data  : 'fail';
                    }
                ] );
            }
        });
预期的GraphQL输出:

“电话”:“123-123-1234”

“城市”:“洛杉矶”

“州”:“CA”

“zip”:“99922”


当前所有项的值均为:“fail”

这是一个回调匿名函数,您不能仅更改其参数。您可以使用的是这里记录的“使用”

register_graphql_field( 'Location', $meta, [
                    'type' => 'String',
                    'description' => __( 'The post data', 'wp-graphql' ),
                    'resolve' => function($post) use ($meta) {
                    $GQL_data = get_post_meta( get_the_ID(), $meta, true);
                    return ! empty( $GQL_data  ) ? $GQL_data  : 'fail';
                    }
                ] );