【发布时间】:2013-03-03 21:48:05
【问题描述】:
我正在尝试将值从静态数组复制到另一个类参数。所以,我不知道这是可能的,或者我只是在处理一个简单的错误。
class EstadosConstantes
{
const NO_APLICA = 0;
const LIBRE = 1;
public static $celdas = array(
self::LIBRE => array(
'id' => self::LIBRE ,
"estilo" => "libre"
),
self::NO_APLICA => array(
'id' => self::NO_APLICA,
"estilo" => "no-aplica"
),
);
}
这是另一个类:
class Reservacion
{
public static $estados = array(
\models\EstadosConstantes::LIBRE => \models\EstadosConstantes::$celdas[\models\EstadosConstantes::LIBRE],
);
正如您在上面提到的,我想将 LIBRE 数组从 EstadosConstantes 复制到 Reservacion 类,但如果我尝试该选项,我会收到此错误:
解析错误:语法错误,意外的 T_VARIABLE,在第 22 行的 /models/Reservacion.php 中需要 T_STRING
line 22 在哪里:
\models\EstadosConstantes::LIBRE => \models\EstadosConstantes::$celdas[\models\EstadosConstantes::LIBRE],
我只是将所有可能的值集中在EstadosConstantes 中,然后每个类都可以复制所需的值。
【问题讨论】:
-
嗯,按照我的理解,为您需要的值创建全局变量不是更容易。或者如果可能的话,一个全局数组?
-
这里的坏处是
\models\EstadosConstantes必须保留该数组,因为该项目是使用这种结构开发的。我是该项目的另一个编码员 -
嗯,您是否也尝试将 const 设为静态?
-
更妙的是,你不能直接从
EstadosConstantes派生出来吗? -
@Leron,抱歉耽搁了,我的互联网连接中断了。但是,你给我一个好主意.. 将
EstadosConstantes转换为接口怎么样?