문제

이것이 내가 PHP 5.3.0 이상에서 작동하고 싶었던 방법입니다.

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

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

하지만 PHP 5.2.6만 사용할 수 있습니다.클래스를 인스턴스화하지 않고 이 동작을 시뮬레이션하는 간단한 방법을 생각할 수 있는 사람이 있습니까?

도움이 되었습니까?

해결책

사용하지 않고도 이 작업을 수행할 수 있습니다. eval 5.3 이전 코드에서.그냥 사용 constant 기능:

<?php

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

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

?>

다른 팁

그러한 상수에 절대적으로 액세스해야 하는 경우 다음을 수행할 수 있습니다.

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

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

하지만 내가 당신이라면 eval을 사용하지 않으려고 노력할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top