선언 된 모든 클래스의 PHP 쇼 이름?
-
03-07-2019 - |
문제
이 코드가 있다고 가정 해 봅시다.
<?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'를 반환해야합니까?
제휴하지 않습니다 StackOverflow