我有这个,显然不起作用。
$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;
但这不起作用
答案 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;