문제

이 코드가 있다고 가정 해 봅시다.

<?php
class hello {
    var $greeting = "hello";
    function hello(){
        echo $this->greeting;
        return;
    }
}

$hello1 = new hello;
$hello2 = new hello;
$hello4 = new hello;
?>

인스턴스화 된 객체의 모든 이름을 반향 시키려고하는 방법 (그리고 가능하면 각 클래스)을 사용하여 (배열에있을 수 있음) "hello1 => hello, hello2 => hello, hello4 => hello".

이것이 불가능한 경우, 클래스 내에서 인스턴스의 이름을 말할 수있는 방법이 있습니까? "hello1"을 얻을 것입니다. 감사.

도움이 되었습니까?

해결책

당신은 전화 할 수 있습니다 get_defined_vars 존재하는 모든 객체의 배열을 얻은 다음 사용합니다. get_class 각각의 클래스 이름을 얻으려면 (코드는 테스트되지 않았지만 작동해야합니다) :

$vars = array();
foreach (get_defined_vars() as $var) {
    $vars[$var] = get_class($var);
}

참고로, 당신이 "선언 된 클래스"라고 부르는 것은 "대상"으로 더 잘 알려져 있습니다.

두 번째 질문은 불가능합니다. 예를 들면 다음과 같습니다.

$hello1 = $hello2 = new hello();

이제 전화하면 instance_name, 'hello1'또는 'hello2'를 반환해야합니까?

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