Autor Zpráva
Lapiw
Profil *
Vie mi nietko vysvetlit, preco toto nie je dobre, ze vyhadzuje chybu na riadok s:

function funkce($dobrovolne = $this -> premenna) {

??

Dakujem.

class Trieda {
  public $premmena = 'halo';

  function funkce($dobrovolne = $this -> premenna) {
  ...
  }
}
Měsíček
Profil
public function funkce() ...
Lapiw
Profil *
to nema na to ziaden vplyv, ved ked sa nic neuvede tak imlicitne je tam public.

Vyhadzuje chybu:

syntax error, unexpected T_VARIABLE


Poradite?
lordfrikk
Profil
Hm díky že mi mažete mé příspěvky?
Timy
Profil
lordfrikk
Tipl bych, že „$dobrovolne = $this -> premenna“ tohle nemůžeš udělat. Musí tam být nějaká konstanta „$dobrovolne="neco"“.
Mastodont
Profil
class Trieda {
  const premenna = 'halo';

  function funkce($dobrovolne = self::premenna) {
    ...
  }
}
Lapiw
Profil *
const premenna = 'halo';

ale ja nechcem premmennu konstatnu, ja ju chcem normalne public $premenna = 'halo';

Da sa to?
WertriK
Profil
Zkus, ale jsem amatér ...

class Trieda {
  public $premenna;

   public function __construct() {
  $this->premenna = "halo";
  }

  function funkce($dobrovolne = $this->premenna) {
    ...
  }
}
Lapiw
Profil *
vyskusal si to?? Nefunguje to!

syntax error, unexpected T_VARIABLE


Viete to niekto?
WertriK
Profil
No jasně
   __contruct() {


Nahraď

  public function  __construct() { 
LamiCZ
Profil *
class Trieda {
  public $premmena = 'halo';

  function funkce($dobrovolne) {
    $this -> premenna = $dobrovolne;
    ...
  }
}


nemuzes psat tridni promenne jako parametry metody, protoze to nema duvod. Mas je prece dostupne v cele tride ;)
LamiCZ
Profil *
P.S. Podle toho jak to potrebujes prirazovat - bud

$this -> premenna = $dobrovolne;


nebo

$dobrovolne = $this -> premenna;


Jinak doporucuji si zadat vychozi hodnotu v te metode, napr.:

function funkce($dobrovolne = ''){
    if($doborovolne != ''){
        ... 
    }
}
nightfish
Profil
Lapiw
citace z http://cz2.php.net/manual/en/functions.arguments.php#functions.argumen ts.default

The default value must be a constant expression, not (for example) a variable, a class member or a function call.
Výchozí hodnota (myšleno v parametrech funkcí/metod) musí být konstantní výraz, nesmí to být (například) proměnná, třídní proměnná nebo volání funkce. Tolik k tvému prvnímu příspěvku, na který se nalepila tuna balastu.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: