не работает такой вызов функции в классе Код (Text): $this->time = "year(15)"; $this->$this->time так тоже пробывал Код (Text): $this->time = "year(15)"; $function = $this->time; $this->{$function}; какие альтернативы есть?
я все объяснил.. в прошлой теме и мне сказали не грузите своей проблемой а задавайте вопрос по сути.. тут наоборот.. решите уже.. нужно вызвать фунцию скажем $this->year(...). Так вызывается без проблем но с переменной которая хранит в себе тот же стринг нет.. как можно решить это?
я сюда наверное не просто так обратился когото погонять или что мне лень.. я когда в такие дебри захожу то это до вечности, все что угодно узнаю но не то.. какие критерии поиска можно было задать? задавал php clas и безрезультатно страницах на 50 разобрался.. так фунционирует, мне хваит Код (Text): $this->{$this->time}($this->interval) Kreker, ты куда пропал? ))
держи PHP: <?php class statisticsSMS { // Deklaration einer Eigenschaft var $data = 'ein Standardwert'; var $Sformat; var $Sbetweento; var $Stime; var $Sdb; var $Sinterval; public function __construct($data) { $this->data = $data; } public function initialValues() { /*if(!empty($this->data['timesearch'])) { $Sdatefor = 'date(mktime(0, 0, 0, $this->data["timesearch"]))'; } else $Sdatefor = '';*/ switch ($this->data['time']) { case day: $this->Sformat = "%d.%m.%Y"; $this->Sbetweento = "1 MONTH), 1"; $this->Stime = "day"; $this->inteval = "31"; //$date = date("d.m.Y", mktime(0, 0, 0, date("m"), date("d")-$i, date("Y"))); break; case month: $this->Sformat = "%m.%Y"; $this->Sbetweento = "1 YEAR), DAYOFYEAR(CURDATE())"; $this->Stime = "month"; $this->interval = "12"; //$date = date("M Y", mktime(0, 0, 0, date("m")-$i, date("d"), date("Y"))); break; case year: $this->Sformat = "%Y"; $this->Sbetweento = "10 YEAR), DAYOFYEAR(CURDATE())"; $this->Stime = "year"; $this->interval = "15"; break; } //Anfang $dateen = array('01.', '02.', '03.', '04.', '05.', '06.', '07.', '08.', '09.', '10.', "11.", '12.'); $datede = array('Januar ', 'Februar ', 'März ', 'April ', 'Mai ', 'Juni ', 'Juli ', 'August ', 'September ', 'Oktober ', 'November ', 'Dezember '); $qQuery = mysql_query(' SELECT COUNT(sms_id) as number, DATE_FORMAT( FROM_UNIXTIME( sms_zeit ) , "'.$this->Sformat.'" ) AS date, SUM(sms_preis) as cost FROM tbl_sms WHERE (sms_zeit) BETWEEN UNIX_TIMESTAMP(SUBDATE(SUBDATE(NOW(), INTERVAL '.$this->Sbetweento.')) AND UNIX_TIMESTAMP(NOW()) GROUP BY date ORDER BY sms_zeit '); $this->data =''; echo mysql_error(); while($rQuery=mysql_fetch_array($qQuery)) { //Leere Ausgabe $this->Sdb = $rQuery['date']; $this->{$this->Stime}(); //Ausgabe $this->data .= "<item name='".$rQuery['date']."' number='".$rQuery['number']." SMS / ".$rQuery['cost']." €'/>"; } //End $this->{$this->Stime}(); return "<content>".$this->data."</content>"; } public function year() { for($year = $this->interval-1; $year >= 0; $year--) { $datum = date(str_replace("%", "", $this->betweenvor), mktime(0, 0, 0, date("m"),date("d"),date("Y")-$this->interval)); //echo $datum." ".$rQuery['date']."<br>"; if($datum != $this->Sdb) { $this->data .= "<item name='".$datum."' number='0 SMS / 0 €'/>"; $this->interval = $year; } else { $year = 0; $this->interval--; } } } public function month() { for($month = $this->interval-1; $month >= 0; $month--) { $datum = date(str_replace("%", "", $this->betweenvor), mktime(0, 0, 0, date("m")-$this->interval,date("d"),date("Y"))); //echo $datum." ".$rQuery['date']."<br>"; if($datum != $this->Sdb) { $this->data .= "<item name='".$datum."' number='0 SMS / 0 €'/>"; $this->interval = $month; } else { $month = 0; $this->interval--; } } } public function day() { for($day = $this->interval-1; $day >= 0; $day--) { $datum = date(str_replace("%", "", $this->betweenvor), mktime(0, 0, 0, date("m"),date("d")-$this->interval,date("Y"))); //echo $datum." ".$rQuery['date']."<br>"; if($datum != $this->Sdb) { $this->data .= "<item name='".$datum."' number='0 SMS / 0 €'/>"; $this->interval = $day; } else { $day = 0; $this->interval--; } } } } ?> если вникнешь в класс дай знать что можно улучшить..
Видите ли в чем дело... Перед тем как написать свой ответ я реализовал поставленную задачу двумя способами и проверил насколько просто добывается информация из мануала. Так вот нужная информация добывается за 4 клика мышью, из них два для доступа к оглавлению. Еще один клик покажет другой вариант реализации. 1) http://www.phpwiki.ru/%D0%94%D0%BB%D1%8 ... 1%83%D0%BC 2) Для тренировки ума. 3) Для поиска решений. 4) Для нахождения новых понятий с последующим их гуглением 5)... Я намекнул. Попробуйте глянуть оглавление.
Молодой человек не надо тупить. Вам и в прошлой теме сказали то же самое. Объясните задачу, без комментирования ваших попыток ее решения в виде "мне надо выполнить строку"