如何将变量附加到php中的对象

时间:2014-01-17 04:20:44

标签: php variables append

我有这个,显然不起作用。

$start = $hours->start{$day};

我需要能够动态更改$ day。 $ day可以是一周中的任何一天

//For example
$start = $hours->startSunday;

让我试着说清楚一点。以下对象包含特定时间

// will echo something like 8:00am
echo $hours->startSunday;

//will echo something like 7:00am
echo $hours->startMonday;

我需要能够使用变量动态更改日期部分,因为它可以是一周中的任何一天。

//so something like
echo $hours->start.$day;

但这不起作用

2 个答案:

答案 0 :(得分:1)

首先。您可以使用

编辑语法
$hours = new stdClass();
$day = 'Sunday';
$hours->{'start'.$day} = 10;
$start = $hours->{'start'.$day};
var_dump($start);

二。最好使用getter和setter方法。

class Hours
    {
    private $hours = array();
    public function getStart($day)
        {
        return $this->hours[$day];
        }
    public function setStart($day, $value)
        {
        $this->hours[$day] = $value;
        }
    }
$hours = new Hours();
$day = 'Sunday';
$hours->setStart($day, 10);
$start = $hours->getStart($day);
var_dump($start);

答案 1 :(得分:0)

您可以使用魔术方法,__ get()和__set()

class Hours {
    private $data = array();

    public function __get($day) {
        return $this->data[$day];
    }

    public function __set($day, $val) {
        $this->data[$day] = $val;
    }
}

$h = new Hours();
echo $hours->startMonday;