사이트 내 전체검색
PHP
객체 (Objects)
로빈아빠
https://cmd.kr/php/184 URL이 복사되었습니다.

본문

객체 초기화 (Object Initialization)
객체(Object)를 초기화하는 방법은 new 명령을 사용하여 object를 변수에 인스턴스 시키는 것이다.

  1
  2 class foo {
  3    function do_foo () {
  4        echo "Doing foo.";
  5    }
  6 }
  7
  8 $bar = new foo;
  9 $bar->do_foo();
 10     
 

 

--------------------------------------------------------------------------------

Type 전환 (Type juggling)
PHP는 변수 선언에 있어서 명확한 정의를 할 필요도 없고 지원하지도 않는다. 변수의 형식은 변수가 사용되는 문장 속에서 결정된다. 다른 말로 하면, 만약 여러분이 var이라는 변수에 문자열 값을 할당하면 var는 문자열 변수가 되는 것이고, 정수 값을 할당하면 정수 변수가 되는 것이다.

PHP의 자동 형 변환 예는 '+' 연산에서 찾을 수 있다. 어떤 한 피 연산자가 double이면 나머지 모든 피연산자의 형도 double로 바뀌어 결과도 double형이 된다. 만약 피연산자들이 정수형이면 결과도 정수형이다. 여기서 중요한 것은 피연산자 자신의 형은 바뀌지 않는다는 것이다.

  1
  2 $foo = "0";  // $foo is string (ASCII 48)
  3 $foo++;      // $foo is the string "1" (ASCII 49)
  4 $foo += 1;  // $foo is now an integer (2)
  5 $foo = $foo + 1.3;  // $foo is now a double (3.3)
  6 $foo = 5 + "10 Little Piggies"; // $foo is integer (15)
  7 $foo = 5 + "10 Small Pigs";    // $foo is integer (15)
  8     
 

마지막 두 개의 예가 의아한 사람은 String conversion을 보기 바란다.

만약 변수를 어떤 특정한 type으로 지정하여 계산되게 하고 싶다면, Type casting 편을 보기 바란다. 만약 여러분이 변수의 type을 바꾸고 싶다면 settype().을 보기 바란다.

만약 여러분이 위의 예제를 실제 실험하고자 한다면, 위의 예제를 잘라 붙인 후에, 어떤 일이 일어났는 가를 알기 위해 아래의 줄을 삽입한다.

  1
  2 echo "\$foo==$foo; type is " . gettype( $foo ) . "<br>\n";
  3     
 

Note: 배열로의 자동 변환은 현재 정의되어 있지 않다.

  1
  2 $a = 1;      // $a is an integer
  3 $a[0] = "f";  // $a becomes an array, with $a[0] holding "f"
  4     
 

위의 예에서는 $a의 결과가 첫 번째 요소로 'f'를 가지는 배열이 될 것이라고 알 수 있다. 하지만 다음을 보자. :

  1
  2 $a = "1";    // $a is a string
  3 $a[0] = "f";  // What about string offsets? What happens?
  4     
 

PHP가 문자열내의 문자를 indexing해서 접근하는 것이 가능하므로 위의 예제는 $a의 문자열의 첫 번째 문자를 "f"로 하라는 것인지, $a를 "f"라는 문자열을 첫 번째 원소로 가진 배열로 만들라는 것인지 알 수 없다.


--------------------------------------------------------------------------------

Type casting
PHP의 Type casting은 C에서와 같은 방법으로 한다 : 변환하려는 변수 앞에 원하는 type 이름을 괄호 안에 써주면 된다.

  1
  2 $foo = 10;  // $foo is an integer
  3 $bar = (double) $foo;  // $bar is a double
  4     
 

다음과 같은 변환이 가능하다. :

(int), (integer) - cast to integer
(real), (double), (float) - cast to double
(string) - cast to string
(array) - cast to array
(object) - cast to object
탭과 공백은 괄호안에서는 무시된다. 즉 다음 두 개의 문장은 동일하다. :

  1
  2 $foo = (int) $bar;
  3 $foo = ( int ) $bar;
  4     
 

특정 타입간의 형변환은 그 결과를 명확하게 알 수 없는 경우가 있다. 다음과 같은 내용들을 알아두도록 하자.

스칼라값이나 문자열을 배열로 형 변환하면, 그 값은 해당 배열의 첫 번째 원소의 값이 된다.

  1
  2 $var = 'ciao';
  3 $arr = (array) $var;
  4 echo $arr[0];  // outputs 'ciao' 
  5     
 

스칼라값이나 문자열을 객체로 형 변환하면, 그 값은 해당 객체의 'scalar'라는 속성의 값이 된다.

  1
  2 $var = 'ciao';
  3 $obj = (object) $var;
  4 echo $obj->scalar;  // outputs 'ciao'
  5

출처 : http://qdata.co.kr/bo/bbs/board.php?bo_table=pht&wr_id=22

댓글목록

등록된 댓글이 없습니다.

PHP
871 (16/18P)

Search

Copyright © Cmd 명령어 13.58.161.115