Cytat(kiler129 @ 29.08.2010, 04:49:39 )

Niestety natrafiłem na sytuację gdzie jest to przydatne. Pokazuję to niżej:
define("APATH", "/Users/Grzegorz/Sites/uCMS");
foo($safe_dir=APATH."/download") { ... }
Co prawda problem da się obejść tak:
define("APATH", "/Users/Grzegorz/Sites/uCMS"); define("SAFE_BROWSE_PATH", APATH
."/download"); //path where user can safety view without violating security
foo($safe_dir=SAFE_BROWSE_PATH) { ... }
To że nie powinna od niczego zależeć i może być z całą definicją funkcji uznana jako stała to wiem ;] Tyle że połączenie nawet 2 stringów ("foo"."bar") skutkuje błędem.
Oba przypadki są jak dla mnie pozbawione sensu i są złą praktyką, przecież jeżeli przy przekazywaniu do funkcji będziesz składał sobie zmienną to ta funkcja jest kompletnie nieelastyczna, powinieneś to tak rozwiązać:
define("APATH", "/Users/Grzegorz/Sites/uCMS");
$path = APATH."/download";
foo($path);
funkcja przyjmuje jakieś parametry i wykonuje na nich operacje, jeżeli jakieś parametry mają wartość domyślną to ją ustawiasz, ale jeżeli te wartości trzeba poskładać to robisz to przed funkcją