PHP将数组转换为类中的对象.那可能吗?
发布时间:2020-12-13 22:06:14 所属栏目: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)ar
我有一个像变量
$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(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |