phpclass/클래스활용2000. 10. 19. 14:44
객체의 형변환(type casting)
스칼라값(integer, double, string)을 객체로 형변환하면, 그 값은 해당 객체의 'scalar'라는 멤버변수의 값이 된다.
[code php;gutter:false] $var = 'ciao';
$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]
< 예제 소스 >
object->integer : 1
object->double : 1
object->string : Object
$a[a] = 10
$a[b] = 20
$a[c] = 30
< 실행 결과 >
gettype(), settype(), is_object() 함수
print_r() 함수

Posted by 방글24