사이트 내 전체검색
PHP
변수 형태 (Types)
로빈아빠
https://cmd.kr/php/182 URL이 복사되었습니다.

본문

PHP는 다음 형태의 type을 지원한다. :

배열 (array)
실수형 (floating-point numbers)
정수형 (integers)
객체 (object)
문자열 (string)

( 역자주 : 내부적으로는 함수와 클래스도 변수로 정의되기는 하지만 이것들은 일반적인 변수로 체크되지 않는다. )

변수타입은 보통 프로그래머가 선택할 필요가 없다. 대신, PHP가 실행중에 변수의 값의 내용에 따라 자동적으로 바꾸어 준다.

만약 여러분이 특정한 변수 타입으로 지정하고 싶다면 변수를 cast 하거나, settype() 함수를 사용한다.

------------------------------------------------------------------------
정수형 (Integers)

정수형은 다음과 같은 형태의 문장으로 지정할 수 있다.

 
  $a = 1234; # decimal number
  $a = -123; # a negative number
  $a = 0123; # octal number (equivalent to 83 decimal)
  $a = 0x12; # hexadecimal number (equivalent to 18 decimal)
 --------------------------------------------------------------------------------

실수형 (Floating point numbers)

실수형("doubles")은 다음과 같은 형태의 문장으로 지정할 수 있다.

   
  $a = 1.234; $a = 1.2e3;

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

문자열 (Strings)

문자열은 두 개의 delimiters를 사용해 나타낸다.

문자열이 큰 따옴표(")로 둘러싸이게 표시되면, 다음과 같이 특수 문자들을 포함할 수 있다. C나 Perl에서처럼 백슬래시(\)를 사용하여 특수 기호를 표시하게 된다.

Table 2-1. Escaped characters
---------------------------------------------
sequence                  meaning
---------------------------------------------
\n                            newline
---------------------------------------------
\r                              carriage
 --------------------------------------------
\t                              horizontal tab
 --------------------------------------------
\\                            backslash
 --------------------------------------------
\$                            dollar sign
 ---------------------------------------------
\"                              double-quote
 --------------------------------------------

때로는 다른 escape를 사용할 수 있지만, worning이 발생하게 된다.

문자열을 표현하는 또 다른 방법은 큰 따옴표(") 대신 작은 따옴표(')를 사용하는 것이다. 이것은 \\과 \'의 두 개만을 백슬래시 처리하고 나머지는 그냥 둔다. 작은 따옴표를 사용하는 문자열 내에서는 변수를 사용하여 그 값을 출력하는 기능을 사용할 수 없다.

문자열을 선언하는 다른 방법은  here doc 구문("<<<")을 사용하는 것이다. <<< 뒤에 적당한 identifier를 적어주고, 원하는 문자열의 내용을 적은 후에, 앞에 적은 identifier로 문자열을 끝맷으면 된다. 끝맷는 identifier는 해당 라인의 첫번째 칸에서 시작해야 한다.

Example 2-1. Here doc string quoting example

 
  $str = <<<EOD
  Example of string
  spanning multiple lines
  using heredoc syntax.
  EOD;
       
 
Note: Here doc은 PHP 4에서부터 지원된다.

문자열은 '.' (점) 연산자로 연결할 수 있다. '+' (더하기) 연산자는 사용할 수 없다. 자세한 정보는 String operators 부분을 참조하기 바란다.

문자열내의 개개의 문자는, C 언어에서의 문자의 배열로된 문자열처럼 배열에 숫자 인덱스를 통해 접근이 가능하다. 아래 그 예가 있다.

Example 2-2. Some string examples

 
  <?php
  /* Assigning a string. */
  $str = "This is a string";
 
  /* Appending to it. */
  $str = $str . " with some more text";
 
  /* Another way to append, includes an escaped newline. */
  $str .= " and a newline at the end.\n";
 
  /* This string will end up being '<p>Number: 9</p>' */
  $num = 9;
  $str = "<p>Number: $num</p>";
 
  /* This one will be '<p>Number: $num</p>' */
  $num = 9;
  $str = '<p>Number: $num</p>';
 
  /* Get the first character of a string  */
  $str = 'This is a test.';
  $first = $str[0];
 
  /* Get the last character of a string. */
  $str = 'This is still a test.';
  $last = $str[strlen($str)-1];
  ?>     
 --------------------------------------------------------------------------------
문자열 변환 (String conversion)

문자열이 숫자로 다루어질 때, 결과 값과 type은 다음과 같이 결정된다.

만약 문자열 안에 '.' 이나 'e', 'E'의 문자가 있을 경우 그 type은 double이 된다. 그렇지 않다면 정수 값이다

그 값은 문자열의 가능한 부분까지만 사용된다. 문자열이 올바른 숫자 데이터로 시작하지 않으면 그 값은 0이다. 올바른 숫자 데이터는 '+'/'-', '0'-'9','.'과 숫자 뒤의 'e'나 'E' 표시이다.

첫 번째 표현식이 string인 경우, 변수의 type은 첫 번째가 아닌 두 번째 표현식에 의해 결정된다.

 
  $foo = 1 + "10.5";              // $foo is double (11.5)
  $foo = 1 + "-1.3e3";            // $foo is double (-1299)
  $foo = 1 + "bob-1.3e3";        // $foo is integer (1)
  $foo = 1 + "bob3";              // $foo is integer (1)
  $foo = 1 + "10 Small Pigs";    // $foo is integer (11)
  $foo = 1 + "10 Little Piggies"; // $foo is integer (11)
  $foo = "10.0 pigs " + 1;        // $foo is integer (11)
  $foo = "10.0 pigs " + 1.0;      // $foo is double (11)   
     
 
이 변환에 대한 자세한 설명은Unix manual page의 strtod(3)을 보아라.

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

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

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

댓글목록

등록된 댓글이 없습니다.

PHP
871 (16/18P)

Search

Copyright © Cmd 명령어 3.133.108.172