Sınıflar serisi SABIT niteliğini erişme

2 Cevap php

Bu PHP 5.3.0 + çalışacak hangi yapmak istedim nasıl

<?php
    class MyClass
    {
        const CONSTANT = 'Const var';        
    }

    $classname = 'MyClass';
    echo $classname::CONSTANT; // As of PHP 5.3.0
?>

Ama PHP 5.2.6 kullanarak sınırlı ediyorum. Herkes sınıfı başlatmasını olmadan bu davranışını simüle etmek için basit bir yol düşünebiliyor musunuz?

2 Cevap

Önceden 5.3 kodu eval kullanmadan gerçekleştirebilirsiniz. : Sadece sabiti () işlevini kullanın

<?php

class MyClass
{
    const CONSTANT = 'Const var';
}

$classname = 'MyClass';
echo constant("$classname::CONSTANT");

?>

Absolutly böyle bir sabit erişmek için gerekiyorsa, bunu yapabilirsiniz:

<?php
class MyClass
{
const CONSTANT = 'Const var';
}

$classname = 'MyClass';
echo eval( 'return '.$classname.'::CONSTANT;' );
?>

I olsaydı ama, ben eval kullanmak için değil denemek istiyorum.