Funkce jako výchozí hodnota parametru presenteru

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
kazlik
Člen | 19
+
0
-

Snažím se nastavit výchozí hodnotu parametru v presenteru, ovšem mi laděnka hlásí, že $this nezná, viz
syntax error, unexpected '$this' (T_VARIABLE)

<?php

namespace App\Presenters;

use Nette;
use App\Model;
use App\Model\RozpisRepository;

class RozpisPresenter extends BasePresenter
{

  /**
    * @inject
    * @var \App\Model\RozpisRepository
    */
  public $rozpisRepository;

  public function __construct()
  {
    //
  }

	public function renderDefault($project, $week = $this->rozpisRepository->getThisWeek())
	{
    //
  }
...

}

Když $this->rozpisRepository->getThisWeek() hodím až do renderu (například to echnu), tak se to vykoná bez problému, ale jako výchozí hodnotu parametru mi to nechce vzít

enumag
Člen | 2118
+
0
-

Doporučuji se nejdříve naučit syntaxi PHP než začneš s frameworkem.

kazlik
Člen | 19
+
0
-

Jáj, takhle to vlastně nejde, takže to budu muset udělat takhle

public function renderDefault($project, $week = null)
	{
    if($week == null){
      $week = $this->rozpisRepository->getThisWeek();
    }
    //
  }
enumag
Člen | 2118
+
+1
-

Doporučím trojité rovnítko, ale jinak ano. :-)

artemevsin
Člen | 61
+
0
-

jak píše @enumag v PHP toto nejde. Ani to není třeba, zřejmě se snažíš udělat toto:

public function renderDefault($project)
{
	$week = $this->rozpisRepository->getThisWeek();
}

EDIT:
koukám, že jsem moc pomalý :)

Editoval artemevsin (21. 10. 2015 10:00)

kazlik
Člen | 19
+
0
-

@artemevsin Takhle by to taky šlo, ale nemohl bych měnit týden k zobrazení (ve výchozím stavu se zobrazí tento týden, jinak týden předaný přes $week.) :)

artemevsin
Člen | 61
+
0
-

jasný, už to vidím :)