私は次のクラスを持っています
class CLG_Container_Main_Schedule extends CLG_Container_Main
{
protected $_box = 'schedule';
public function __construct($calendar=null)
{
parent::__construct($this->_box);
$this->init();
}
public function init()
{
$this->setTitle('Schedule');
$html = '<div id="schedule_time">';
for( $h = 5; $h < 24; $h++ )
{
for( $m=0; $m <60; $m += 15 )
{
$time = str_pad($h, 2, '0', STR_PAD_LEFT) . ':' . str_pad($m, 2, '0', STR_PAD_RIGHT);
$time_id = str_pad($h, 2, '0', STR_PAD_LEFT) . str_pad($m, 2, '0', STR_PAD_RIGHT);
$html .= '<div class="schedule_time" time="' . $time_id . '">' . $time . '</div>';
}
}
$html .= '</div>';
$this->setContent($html);
}
public function render()
{
return parent::render();
}
}
何らかの理由で、作成中の $html のインスタンスを 2 つ取得するため、クラス関数が 2 回呼び出されています。奇妙なことに、別のコンテナー クラスがあり、コンストラクターで init() も呼び出しますが、それは 1 回しか呼び出されません。
私は何が欠けていますか?コンストラクターから init() を削除すると、何らかの方法で init() が呼び出され、すべて正常に動作します。
ありがとう