PHP将数组转换为类中的对象.那可能吗?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP将数组转换为类中的对象.那可能吗?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个像变量

$a = array(
       'First' => array( 'b' => 2,'c' => 3),'second' => array('d' => 4,'e' => 5)
);

要访问元素,我可以使用

$a['first']['c']

但要像这样访问它,

$a->first->c

我可以将数组转换为对象,如下所示:

$a = (object)array(
       'first' => (object)array( 'b' => 2,'second' => (object)array('d' => 4,'e' => 5)
);

但我必须在像这样的类中使用相同的..

class classname {
     public static $a = (object)array(
           'first' => (object)array( 'b' => 2,'e' => 5)
    );
}

它会抛出T_OBJECT_CAST错误.如果我想访问像这样的元素,我怎样才能使它工作

className::$a->first->c;

解决方法

PHP中的常量表达式现在相当有限(虽然工作中有一些变化).您可以在类定义之后初始化静态变量,也可以在静态初始化函数中初始化,您需要显式调用它.

class ClassName {
     public static $a;
}
ClassName::$a = (object)array(
       'first' => (object)array( 'b' => 2,'e' => 5),);

使用初始化函数的优点是可以封装其他类初始化任务.如果没有其他任务,则可能是矫枉过正.

class ClassName {
    public static $a;
    static function inITialize() {
        static $notRun = TRUE;
        if ($notRun) {
            $notRun = FALSE;
            self::$a = (object)array(
              'first' => (object)array( 'b' => 2,);
            # other tasks...
        }
    }
}
ClassName::initialize();

脚本宝典总结

以上是脚本宝典为你收集整理的PHP将数组转换为类中的对象.那可能吗?全部内容,希望文章能够帮你解决PHP将数组转换为类中的对象.那可能吗?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。