带有数组的PHP echo数组?

时间:2016-12-11 02:01:08

标签: php arrays

我创建了一个工作正常的数组:

$user_list_args = array(
 'role__in' => array('editor', 'author', 'administrator' ),
);
$user_list = get_users($user_list_args);
$user_list_array = array();
foreach ( $user_list as $user ) {
 $user_list_array[] = $user->user_nicename;
}

然后我想在另一个设置如下的数组中显示它:

array(
 'id' => 'task-users',
 'label' => 'User(s)',
 'type' => 'select',
 'options' => array(
  'tom',
  'jerry',
 ),
),

我想从数组中将选项更改为动态:

private $fields = array(
 array(
  'id' => 'task-users',
  'label' => 'User(s)',
  'type' => 'select',
  'options' => array($user_list_array),
 ),
);

这会产生错误:

  

致命错误:常量表达式包含无效操作

有人能指出我正确的方向吗?我使用的是PHP7,如果有帮助,但也可以在旧版本上使用。

由于

2 个答案:

答案 0 :(得分:1)

您无法使用变量声明类属性。如果需要将类似值赋值给属性,请使用构造函数方法并在那里执行。也许是这样的:

private $fields;

public function __construct() {
    // your code to define $user_list_array somewhere here
    // or passed to constructor when you instantiate the class

    $this->fields = array(
        array(
            'id' => 'task-users',
            'label' => 'User(s)',
            'type' => 'select',
            'options' => array($user_list_array),
        )
    );
}

http://php.net/manual/en/language.oop5.properties.php

  

此声明可能包括初始化,但此初始化必须是常量值 - 也就是说,它必须能够在编译时进行评估,并且必须不依赖于运行时信息才能进行评估。

答案 1 :(得分:0)

你的加入没有回应,这是完全有效的:

<?php

$user_list_array=array(
  'tom',
  'jerry',
 );

$f= array(
 'id' => 'task-users',
 'label' => 'User(s)',
 'type' => 'select',
 'options' => array($user_list_array),
);

print_r($f);

输出:

Array
(
    [id] => task-users
    [label] => User(s)
    [type] => select
    [options] => Array
        (
            [0] => Array
                (
                    [0] => tom
                    [1] => jerry
                )

        )

)

OR:

<?php

$user_list_array=array(
  'tom',
  'jerry',
 );

$f= array(
 'id' => 'task-users',
 'label' => 'User(s)',
 'type' => 'select',
 'options' => $user_list_array,
);

print_r($f);

输出:

Array
(
    [id] => task-users
    [label] => User(s)
    [type] => select
    [options] => Array
        (
            [0] => tom
            [1] => jerry
        )

)