객체
객체 (Objects)
PHP에서 객체는 new 키워드로 클래스를 인스턴스화해서 만드는 타입이에요. 이 페이지에서는 객체를 어떻게 생성하고, 다른 타입의 값을 객체로 변환하면 어떤 일이 벌어지는지를 다뤄요.
본문
객체 초기화 (Object Initialization)
새 객체를 만들려면 new 문을 사용해서 클래스를 인스턴스화해요.
예제 #1 객체 생성 (Object Construction)
<?php
class foo
{
function do_foo()
{
echo "Doing foo.";
}
}
$bar = new foo;
$bar->do_foo();
?>
자세한 내용은 Classes and Objects 챕터를 참고해요.
객체로 변환 (Converting to object)
객체를 객체로 변환하면 아무것도 수정되지 않아요. 다른 어떤 타입의 값이 객체로 변환되면, 내장 클래스인 stdClass의 새 인스턴스가 만들어져요. 값이 null이었다면 새 인스턴스는 비어 있게 되고요. 배열은 키 이름이 속성이 되고 그에 대응하는 값이 속성 값이 되는 객체로 변환돼요. PHP 7.2.0 이전에는 숫자 키를 반복하지 않는 한 접근할 수 없었어요.
예제 #2 객체로 캐스팅하기 (Casting to an Object)
<?php
$obj = (object) array('1' => 'foo');
var_dump(isset($obj->{'1'})); // outputs 'bool(true)'
// Deprecated as of PHP 8.1
var_dump(key($obj)); // outputs 'string(1) "1"'
?>
그 외의 어떤 값이든, scalar라는 이름의 멤버 변수에 그 값이 담겨요.
예제 #3 (object) 캐스팅
<?php
$obj = (object) 'ciao';
echo $obj->scalar; // outputs 'ciao'
?>