我从日历类中获得了以下功能。虽然我无法弄清楚如何将$content
变量传递给它,因为它不是一个参数。任何人都知道如何为此设置$content
变量,以便函数读取它并知道它的设置?
private function day($day){
if((bool) $day){
$class = $this->_class_defintions['working_day'];
$content = isset($this->_day_data[($day)]) ? $this->_day_data[($day)] : '';
$day_num = '<div class="'. $this->_class_defintions['day_number'] .'">'. $day .'</div>';
/**
* if there is content, set the class to whatever is content_day
*/
if($content !== ''){
$class = $this->_class_defintions['content_day'];
}
}else{
$class = $this->_class_defintions['blank_day'];
$content = '';
$day_num = '';
}
return '
<td class="'. $class. '">
<div class="calendar_day_container">
'. $day_num . $content .'
</div>
</td>
';
}
查看类,这是应该设置$content
的函数,但它不起作用。
/**
* sets the data for a given day
*
* @param integer $day -- the zero key of the day to be modified
* @param mixed $content -- the content for that day
* @param boolean $append -- this will say to overwrite the day or not with the data. Defaults to true
* @access public
* @return return type
*/
public function setDayData($day, $content, $append = true){
$current_content = isset($this->_day_data[$day]) ? $this->_day_data[$day] : '';
$this->_day_data[$day] = $append ? $current_content . $content : $content;
return $this;
}
我尝试设置内容但运行以下内容:
$test = "This is a test";
$this->setDayData($list_day,$test, true);
答案 0 :(得分:0)
您可以向day()
函数添加参数并为其指定默认值,
然后检查函数内的$myArg
的值:
private function day($day, $myArg = NULL){
if($myArg !== NULL) {
//do something
}
}
答案 1 :(得分:0)
你神秘的setDayData
函数所做的只是将内容与给定日期相关联。
如果将append
设置为false
,则内容将覆盖以前的所有内容。如果您将其设置为true
,则会将新内容添加到上一个内容。
这意味着,如果您在任何指定日期仅拨打setDayData
一次,则无论append
参数如何,结果都将完全相同。
班级中没有content
成员,因为班级处理多天
相反,每个内容都在_day_data
数组中调度,按日索引。
因此,要检索它,您必须在给定的一天内查看此数组,这正是行$content = isset($this->_day_data[($day)]) ? $this->_day_data[($day)] : '';
的作用,尽管$day
周围的大括号是非常不必要的。
你的神秘代码对课程的作用是:
blank day
= 0,则将其设置为$day
(我想知道你为什么要将它转换为bool,顺便说一下)working day
!= 0并且当天没有定义任何内容,则$day
content day
我认为blank
在本月之外的几天内被用作填充,working
用于未定义内容(我认为是议程说明)的日期,以及content
天数哪里有要显示的笔记。
据我所知,setDayData
方法运作正常
但是,它是课程的一部分,所以如果你没有创建课程实例,你就不会得到任何东西,在 之前调用setDayData
几次 调用您的day($day)
方法 和 ,确保您不会调用神秘类的其他方法来破坏内容
要查看正在发生的情况,拨打var_dump
时,一些电话会显示您调用setDayData
之后和拨打day()
之前对象所处的状态。
我敢打赌,你没有在同一个对象实例上工作,或者你调用了另一个搞乱了内容的类方法。