Some of posts from this blog has been moved to dywicki.pl. You will be automatically redirected to new blog if you would submit comment.
New posts are published on dywicki.pl, this blog contains old content and it is not continued.
Niektóre posty z tego bloga zostały przeniesione do dywicki.pl. Zostaniesz automatycznie przekierowany jeśli bedzięsz chciał dodać komentarz.
Nowe posty sa publikowane na dywicki.pl, ten blog zawiera stare treści i nie jest kontynuowany.
Jun
28
2006
Filed under PHP by Łukasz Dywicki
Mały konkursik – jak pobrać stałą z klasy..? Kod jest, jedyny problem to to, że nazwa stałej może się zmienić…
< ?php
class Foo {
const TAK = 'prawda';
const NIE = 'fałsz';
const CHGW = 'a kto go tam wie';
}
if($_GET['imie'] == 'Bolek') {
// $constant = 'TAK';
} elseif(!empty($_GET)) {
// $constant = 'NIE';
} else {
// $constant = 'CHGW';
}
echo '... wlasnie co ? ..';
?>
10 responses so far
Leave a Reply
You must be logged in to post a comment.
eval…?
mm, fajne zadanie :) uwielbiam takie :)
A czemu nie przypiszesz do $constant = Foo::TAK ?
Skoro znasz nazwy stalych to znasz tez klase skad pochodza wiec mozesz ja dopisac.
Ha!
$ref = new ReflectionClass( ‘Foo’ );
print( $ref->getConstant( $constant ) );
$methods = get_class_methods (‘Foo’);
;)
Oj tfu, miałem na myśli get_class_vars().
Fipaj — nie zadziala –> http://phpfi.com/126344
Rezulatat:
a kto go tam wie
Array ( [wtf] => What the fuck is WTF? [staticWTF] => What the fuck is staticWTF? ) No i co? Nie dziala
zadziala tylko dla zmiennych instancji i klasy, nie dla stalych.
A rozwiazaniem jest:
$ref = new ReflectionClass( $className );
return $ref->getConstant( $constantName );
Jest krótsze rozwiązanie. :)
ReflectionProperty…? :)
No nic, ja już odpadłem :)
constant(‘Foo::’. $constant);
Wiedzialem ze to istnieje! tylko nie moglem znalezc :)
LXXXIII. Miscellaneous Functions — no swietnie :)