객체

객체 (Objects)

PHP에서 객체는 new 키워드로 클래스를 인스턴스화해서 만드는 타입이에요. 이 페이지에서는 객체를 어떻게 생성하고, 다른 타입의 값을 객체로 변환하면 어떤 일이 벌어지는지를 다뤄요.

출처: PHP: Objects - Manual

본문

객체 초기화 (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'
?>

더 알아보기