如何修改将对象转换为数组的方式?

时间:2019-04-02 09:25:21

标签: php php-5.6

我必须将一个对象转换为数组,但是我想省略一些对象的属性。

<Scene
        navigationBarStyle={styleNav.Nav}
        titleStyle={styleNav.NavText}
        headerTintColor={colors.white}
        key="singlePage"
        hideNavBar={true}
        component={AlimYeri}
        title={strings.PAGE_TITLE.ALIMYERI}
      />
      <Tabs
        key="tab"
        swipeEnabled
        showLabel={true}
        hideNavBar={true}
        tabBarPosition="top"
        activeBackgroundColor="white"
        lazy
      >
        <Scene
          hideNavBar={true}
          key="tab_1"
          component={tab_1}
          title={strings.PAGE_TITLE.tab_1}
        />

        <Scene
          hideNavBar={true}
          key="tab_2"
          component={tab_2}
          title={strings.PAGE_TITLE.tab_2
        />
        <Scene
          hideNavBar={true}
          key="tab_3"
          component={tab_3}
          title={strings.PAGE_TITLE.tab_3}
        />
      </Tabs>

当我将此类的对象转换为数组时,生成的数组应为e。 G。看起来像这样:

class X {
   protected $a = 1;
   protected $b = 5;

   /**
    * Property 'a' should not exist in the resulting array
    */
   public function __toArrayOrSomething()
   {
       return [
           'b' => $this->b
       ];
   }
}

$x = new X(); $result = (array) $x; 应该看起来像这样:

$result

我知道有很多方法可以进行手动数组转换,但是我需要一种用于类型转换([ 'b' => 5 ] )的解决方案。

所以问题是: 是否有类似JsonSerializable :: jsonSerialize的东西用于数组广播?

或者换句话说:当将一个对象强制转换为数组时,是否有一个被调用的方法?

0 个答案:

没有答案