객체의 형변환(type casting)
스칼라값(integer, double, string)을 객체로 형변환하면, 그 값은 해당 객체의 'scalar'라는 멤버변수의 값이 된다.
[code php;gutter:false]
$var = 'ciao';
$obj = (object) $var;
echo $obj->scalar; // 'ciao'를 출력 [/code]
$obj = (object) $var;
echo $obj->scalar; // 'ciao'를 출력 [/code]
객체를 스칼라값(integer, double)으로 형변환하면 의미없는 숫자 "1" 또는 "1.0"으로 되며, 문자열로 형변환하면 객체 내용에 관계없이 "Object"라는 문자열로 되며, 배열로 형변환하면 객체의 멤버변수명을 첨자로 하는 연관배열(associative array)로 됩니다.
[code php;gutter:false]
<?php
class test {
var $a = 10;
var $b = 20;
function test() {
$this->c = 30;
}
}
$obj = new test;
$a = (int) $obj;
echo "object->integer : ".$a."\n";
$a = (double) $obj;
echo "object->double : ".$a."\n";
$a = (string) $obj;
echo "object->string : ".$a."\n";
$a = (array) $obj;
reset ($a);
while (list($k, $v) = each ($a))
echo "\$a[$k] = $v\n";
?> [/code]
class test {
var $a = 10;
var $b = 20;
function test() {
$this->c = 30;
}
}
$obj = new test;
$a = (int) $obj;
echo "object->integer : ".$a."\n";
$a = (double) $obj;
echo "object->double : ".$a."\n";
$a = (string) $obj;
echo "object->string : ".$a."\n";
$a = (array) $obj;
reset ($a);
while (list($k, $v) = each ($a))
echo "\$a[$k] = $v\n";
?> [/code]
< 예제 소스 >
object->integer : 1
object->double : 1
object->string : Object
$a[a] = 10
$a[b] = 20
$a[c] = 30
object->double : 1
object->string : Object
$a[a] = 10
$a[b] = 20
$a[c] = 30
< 실행 결과 >
gettype(), settype(), is_object() 함수
print_r() 함수
'phpclass > 클래스활용' 카테고리의 다른 글
{클래스를 사용해야 하나}2.모듈화 프로그래밍 (0) | 2002.09.13 |
---|---|
{클래스를 사용해야 하나}1.개요 (0) | 2002.09.13 |
{객체에 관련된 정보}4.메소드 다루기(PHP3) (0) | 2000.10.19 |
{객체에 관련된 정보}3.메소드 다루기(PHP4) (0) | 2000.10.19 |
{객체에 관련된 정보}2.Serialize/Unserialize (0) | 2000.10.19 |