【问题标题】:How to return a variable operator like $option[];如何返回变量运算符,如 $option[];
【发布时间】:2017-01-15 20:05:57
【问题描述】:

显然,我不能这样做,但是有什么方法可以实现我想要的吗?我只发现不能在网上做,但没有潜在的解决方法。

这就是我想要做的。

目前我收到以下错误...“无法使用 [] 读取

对于我的主题,我有一个框架,该框架中的字段是使用我创建的数组构建的。

看起来像这样(减去我实际使用的 300 多行代码)...

$options[] = 
array(
    'title' => 'This Field Tab Title',
    'name' => 'this-field-tab-slug',
    'fields' => 
    array(
        // ----------------------------------------------------------------------
        // This Field Option Name
        // ----------------------------------------------------------------------
        array(
            'type' => 'this_field_type',
            'id' => 'this_field_types_id',
        ),
        // ----------------------------------------------------------------------
        // This Field Option Name
        // ----------------------------------------------------------------------
        array(
            'type' => 'this_field_type',
            'id' => 'this_field_types_id',
        ),
        // ----------------------------------------------------------------------
        // This Field Option Name
        // ----------------------------------------------------------------------
        array(
            'type' => 'this_field_type',
            'id' => 'this_field_types_id',
        ),
    ),
);

我正在运行分组字段类型,因此我的输出在此分组字段/区域中有许多选项/字段,然后可以根据用户需要多次添加。然后我再次重复整个过程/代码,但对于用户站点的其他分类法。

因此,例如,上面的整个过程适用于帖子类型、类别、标签、存档等。因此,我没有使用数千行重复代码,而是尝试创建自己的函数并传递变量到那个功能。

但是对于函数,我发现我不能返回 $options[];

这是我所说的分组字段的屏幕截图,可以根据用户需要多次添加。

这是我正在尝试创建的函数的示例!

public static function layout_settings_config($title_name = '', $title_slug = '', $title_id = '', $query = '') {
    $title_name = 'Post Type';
    $title_slug = 'post-type';
    $title_id = 'post_type';
    $query = 'post_types';
    $options[] = 
    array(
      // all the config array codes in here...
    );
    return $options ??? $options[]; doesn't work.
}

这有可能以不同的方式实现我想要的吗?我对创建自己的函数和 OOP 还有些陌生,但我在网上找不到任何关于此特定问题的解决方法。

谢谢!

【问题讨论】:

  • 为什么不只是return $option;
  • 我试过了,但没有任何回报。是否应该,即使 $op​​tions[] 包含数组?
  • 只要确保$options 有内容,然后在最后制作return
  • 谢谢,但这不起作用。它打破了我的主题框架。在写这篇文章之前,我已经尝试过这些想法/解决方案,这是我的错,我应该提到这一点。因此,如果可能的话,我自然会寻找一些替代方式,因为常识尝试/方式似乎行不通。如果您认为 $options[] 也很容易成为 $options 并且应该同时采用这两种方法,请告诉我,以便我可以与框架的作者联系。

标签: php arrays function oop


【解决方案1】:

$options[] 不是对象,而是类似函数的操作。

您应该返回 $options

顺便说一句,当你说 $options[] = something 时。它实际上在一个名为 $option 的数组中插入了something。如此有效,您必须像这样访问您的选项。

$option[0]->title.

所以我建议不要让它像这样复杂。简单地说

$option = something.

【讨论】:

  • 谢谢,但这不起作用。它打破了我的主题框架。在写这篇文章之前,我已经尝试过这些想法/解决方案,这是我的错,我应该提到这一点。因此,如果可能的话,我自然会寻找一些替代方式,因为常识尝试/方式似乎行不通。如果您认为 $options[] 也很容易成为 $options 并且应该同时采用这两种方法,请告诉我,以便我可以与框架的作者联系。
  • 当您返回 $options 时,有什么问题?你只是说它打破了你的主题框架。
  • 坦率地说,从 PHP 的角度来看,没有其他解决方案。如果它破坏了你的框架,你误解了你的框架。
猜你喜欢
  • 2012-01-08
  • 2016-07-14
  • 2019-05-12
  • 2011-01-03
  • 2016-04-06
  • 1970-01-01
  • 1970-01-01
  • 2020-05-12
  • 1970-01-01
相关资源
最近更新 更多