클래스/객체 get_class
(PHP 4, PHP 5, PHP 7, PHP 8)
get_class — 객체의 클래스 이름을 반환
설명
get_class(object $object
= ?): string
주어진 object
의 클래스 이름을 가져옵니다.
매개변수
object
- 테스트된 개체입니다. 이 매개변수는 클래스 내부에서 생략될 수 있습니다.
참고: PHP 7.2.0부터
object
로 명시적으로null
을 전달하는 것은 더 이상 허용되지 않으며E_WARNING
을 내보냅니다. PHP 8.0.0부터null
을 사용하면 TypeError가 발생합니다.
반환 값
object
가 인스턴스인 클래스의 이름을 반환합니다.
클래스 내부에서 object
가 생략되면 해당 클래스의 이름이 반환됩니다.
object
가 네임스페이스에 있는 클래스의 인스턴스인 경우 해당 클래스의 정규화된 네임스페이스 이름이 반환됩니다.
오류/예외
get_class()가 객체가 아닌 다른 것으로 호출되면 TypeError가 발생합니다. PHP 8.0.0 이전에는 E_WARNING
레벨 오류가 발생했습니다.
get_class()가 클래스 외부에서 인수 없이 호출되면 Error가 발생합니다. PHP 8.0.0 이전에는 E_WARNING
레벨 오류가 발생했습니다.
변경 로그
버전 | 설명 |
---|---|
8.0.0 | 인수 없이 클래스 외부에서 이 함수를 호출하면 Error가 발생합니다. 이전에는 E_WARNING 이 발생했고 함수가 false 를 반환했습니다. |
7.2.0 | 이 버전 이전에는 object 의 기본값이 null 이었고 값을 전달하지 않는 것과 같은 효과가 있었습니다. 이제 null 이 object 의 기본값으로 제거되었으며 더 이상 유효한 입력이 아닙니다. |
Examples
예제 #1 get_class() 사용
<?php
class foo {
function name()
{
echo "My name is " , get_class($this) , "\n";
}
}
// create an object
$bar = new foo();
// external call
echo "Its name is " , get_class($bar) , "\n";
// internal call
$bar->name();
?>
위의 예는 다음을 출력합니다.
Its name is foo My name is foo
예제 #2 슈퍼클래스에서 get_class() 사용하기
<?php
abstract class bar {
public function __construct()
{
var_dump(get_class($this));
var_dump(get_class());
}
}
class foo extends bar {
}
new foo;
?>
위의 예는 다음을 출력합니다.
string(3) "foo" string(3) "bar"
예제 #3 네임스페이스 클래스와 함께 get_class() 사용
<?php
namespace Foo\Bar;
class Baz {
public function __construct()
{
}
}
$baz = new \Foo\Bar\Baz;
var_dump(get_class($baz));
?>
위의 예는 다음을 출력합니다.
string(11) "Foo\Bar\Baz"
기타
- get_called_class() - "Late Static Binding" 클래스 이름
- get_parent_class() - 개체 또는 클래스의 상위 클래스 이름을 검색합니다.
- gettype() - 변수의 유형 가져오기
- get_debug_type() - 디버깅에 적합한 방식으로 변수의 유형 이름을 가져옵니다.
- is_subclass_of() - 객체에 이 클래스가 부모 중 하나인지 또는 구현하는지 확인합니다.