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.

Jak się dobrać do stałej klasy

Filed under PHP by

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&#91;'imie'&#93; == 'Bolek') {
// $constant = 'TAK';
} elseif(!empty($_GET)) {
// $constant = 'NIE';
} else {
// $constant = 'CHGW';
}
echo '... wlasnie co ? ..';
?>

10 responses so far

10 Responses to “Jak się dobrać do stałej klasy”

  1. Fipaj says:

    eval…?

    mm, fajne zadanie :) uwielbiam takie :)

  2. dr_bonzo says:

    A czemu nie przypiszesz do $constant = Foo::TAK ?
    Skoro znasz nazwy stalych to znasz tez klase skad pochodza wiec mozesz ja dopisac.

  3. dr_bonzo says:

    Ha!

    $ref = new ReflectionClass( ‘Foo’ );
    print( $ref->getConstant( $constant ) );

  4. Fipaj says:

    $methods = get_class_methods (‘Foo’);

    ;)

  5. Fipaj says:

    Oj tfu, miałem na myśli get_class_vars().

  6. dr_bonzo says:

    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 );

  7. Jest krótsze rozwiązanie. :)

  8. Fipaj says:

    ReflectionProperty…? :)

    No nic, ja już odpadłem :)

  9. constant(‘Foo::’. $constant);

  10. dr_bonzo says:

    Wiedzialem ze to istnieje! tylko nie moglem znalezc :)
    LXXXIII. Miscellaneous Functions — no swietnie :)

Leave a Reply