PHP의 유형
이 장의 핵심 포인트
◆ PHP의 8가지 유형을 이해합니다... Boolean,
◆ NULL, 문자열, 배열, 객체 및 리소스
◆ 다양한 유형의 객체 생성, 읽기, 표시 및 조작
한 유형에서 다른 유형으로 변환
모든 프로그래밍 언어에는 특정 유형 시스템이 사용됩니다. 프로그램에 나타날 수 있는 값의 종류를 지정합니다. 이러한 다양한 유형은 컴퓨터 메모리의 다양한 표현 수준에 해당하는 경우가 많으며, 대부분의 경우 프로그래머는 비트 표현을 고려할 필요가 없습니다(또는 이를 처리할 수 있는 충분한 성능이 없습니다). PHP의 유형 시스템은 단순하고 합리적이며 유연하며 프로그래머를 낮은 수준의 세부 사항과 분리합니다.
이 장에서는 PHP의 기본 유형(정수, 이중, 불리언, NULL, 문자열, 배열, 객체, 리소스)을 설명하고, 읽는 방법, 출력 및 표시하는 방법, 변수에 할당하고 변환하는 방법과 함께 결합하는 방법을 설명합니다. 이 장은 소개이자 참고 자료입니다. 이미 프로그래밍 경험이 있는 사람은 건너뛸 수 있지만, 익숙하지 않은 사람은 누구나 처음 몇 부분만 읽을 수 있습니다. 앞으로는 문제가 발생하면 처음에는 중요하지 않아 보일 수도 있는 세부 사항을 다시 찾아볼 수 없습니다.
첫 번째 원칙: 여유롭게
PHP를 사용하면 숫자와 유형을 지정할 필요가 없고 많은 유형 변환을 처리할 수 있기 때문에 변수와 값을 쉽게 입력할 수 있습니다.
변수 유형을 먼저 선언할 필요는 없습니다
이전 장에서 언급했듯이 변수 유형을 미리 선언할 필요는 없습니다. 프로그래머가 직접 연산자를 사용하여 지정할 수 있습니다. 다음 예와 같이 PHP 자체가 지정된 값의 유형을 파악합니다.
$first_number=55.5
$second_number="숫자가 아닙니다. all";
자동 유형 변환
PHP는 필요할 때 자동으로 유형 변환을 수행합니다. 오늘날 대부분의 프로그래밍 언어와 마찬가지로 PHP는 연산식
$pi=3+0.14159
과 같은 혼합 숫자 유형 계산을 수행할 때 좋은 성능을 발휘할 수 있습니다. 결과는 배정밀도입니다. 부동 소수점 숫자 덧셈을 수행하기 전에 정수 "3"이 비밀리에 부동 소수점 숫자로 변환됩니다.
컨텍스트에 따라 유형 구성
PHP는 자동 유형 변환을 수행할 때 대부분의 언어보다 더 발전합니다. 아래 예를 살펴보세요
$sub=substr (12345 ,2,2);
Print(“sub is $sub
”);
Substr 함수는 문자열을 입력값으로 사용한 후 특정 값을 전달하도록 설계되었습니다. 문자열의 부분 문자열. 검색된 부분 문자열의 시작점과 길이는 함수의 다른 두 매개변수에 의해 결정됩니다. 이 예에서는 문자열 값이 아닌 정수 12345를 전달합니다. 결과는 어떻게 될까요? 실제로 실행에는 문제가 없습니다. 브라우저는 여전히
Sub is 34
를 출력합니다. substr은 정수 대신 문자열을 예상하므로 PHP는 자동으로 숫자 12345를 The로 변환합니다. 문자열 "12345"를 얻은 다음 substr은 자체 작업을 수행할 수 있습니다.
이러한 자동 유형 변환 기능으로 인해 PHP에서는 유형 오류가 발생하기 어렵습니다. 그러나 실제로 PHP 프로그래머는 유형을 혼합하여 사용하면 "no"가 발생하지 않도록 주의해야 합니다. 오류" 가 발생했지만 올바른 결과가 아닙니다."
유형 요약]
PHP에는 부울, 문자열, 배열, 개체, NULL 및 리소스의 8가지 유형만 있습니다.
* 정수 495와 같이 소수점이 없는 숫자의 정수 부분입니다.
* 3.14159 또는 49.0 등과 유사한 배정밀도 부동 소수점 수
* Boolean Boolean 유형, TRUE 또는 FALSE(true 또는 true가 아님) 두 가지 값만 가능합니다.
* NULL은 값이 NULL만 될 수 있는 특수 유형입니다.
* 문자열 문자열은 "PHP4가 문자열 작업을 지원합니다"라는 표현과 유사한 일련의 문자입니다.
* 배열 배열은 이름이 지정되고 색인이 지정된 다른 값의 모음입니다.
* 객체 프로그래머가 정의한 클래스의 인스턴스인 객체는 해당 클래스
에 특정한 다른 유형의 값과 함수를 래핑할 수 있습니다.
* tesource는 PHP 외부 리소스(예: 데이터베이스 연결)에 대한 참조를 저장하는 데 사용되는 특수 변수입니다.
Boolean, NULL 및 리소스 유형이 PHP4 유형에 추가되었지만 PHP3에는 그렇지 않습니다. 적용되지 않습니다.
물론 처음 5개 유형은 기본 유형이고 다음 두 유형(배열 및 객체)은 복합 유형을 사용하여 모든 유형의 값을 변수 그룹으로 결합할 수 있습니다. 하지만 기본 유형은 그렇지 않습니다. 이 장에서는 복합 유형(배열 및 객체)에 대해 간략하게 설명할 것입니다. 이에 대해서는 해당 장에서 자세히 다루고 있습니다. 마지막으로 리소스 유형은 PHP 디자이너가 직접 처리하지 않고 특수 함수를 사용하여 리소스에 액세스하거나 필요에 따라 다른 함수에 전달하는 특수 유형입니다.
단순 유형
PHP의 단순 유형(정수, 이중, 부울, NULL 및 문자열)은 프로그래밍 경험이 있는 사람에게 익숙할 것입니다. 자세히 설명해야 합니다.) C 프로그래머를 놀라게 할 수 있는 유일한 점은 PHP의 유형이 얼마나 적다는 것입니다.
대부분의 프로그래밍 언어에는 크기가 다른 여러 가지 숫자 유형이 있습니다. 숫자 유형이 클수록 더 넓은 범위의 값을 허용하지만 더 많은 메모리 공간을 차지합니다. 예를 들어, C 언어에는 short 유형(상대적으로 작은 정수용), long 유형(잠재적으로 큰 정수용) 및 int 유형(중간 유형이지만 실제로는 short 또는 long임)이 있습니다. 유형), 정밀도가 다른 부동 소수점 유형도 있으며 메모리 사용량과 기능 중 하나를 선택하는 것이 짜증스러울 수 있지만 유형 선택은 여전히 의미가 있습니다. PHP 개발자는 C의 정수 및 부동 소수점 유형에 해당하는 두 가지 숫자 유형만 사용하여 이 문제를 단순화하는 데 큰 성공을 거두었습니다.
정수형
정수는 양수와 음수를 포함한 단순 정수에 해당하는 단순형이다. 정수는 다음 예와 같이 변수에 값을 할당하거나 계산 표현식에 사용할 수 있습니다.
$int_var=12345
$another_int=-12345+12345; //동등
읽기 형식
정수는 실제로 16의 경우 10진수(진수 10), 8진수(진수 8) 및 16진수(진수 8)의 세 가지 방법으로 읽을 수 있습니다. ). 10진수 형식은 기본값이며, 선행 8진수 형식은 "0"으로 지정되고, 선행 16진수 형식은 "0x"로 지정됩니다. 모든 형식 앞에 "-" 기호를 붙여 정수를 음수로 만들 수 있습니다. 예:
$integer_10 = 1000;
$integer_8 = -01000;
$integer_16 = 0x1000
인쇄(“integer_10:$integer_10;
");
인쇄("integer_8:$integer_8
");
print("integer_16:$integer_16
");
other 브라우저 출력은 다음과 같습니다.
integer_10: 1000
integer_8: -512
integer_16: 4096
(읽기 형식은 정수에만 영향을 미칩니다. ) 읽을 때 어떻게 변하는지, $integer_8에 저장된 값은 원래 8진법으로 썼다는 사실을 기억하지 못합니다. 내부적으로는 이 숫자들이 2진수 형태로 표현되는 것이 당연하고, 최종 출력은 10진수 변환으로 나오며, 이는 기본적으로 인쇄되고 int 변수를 문자열 기본값에 병합하기 때문입니다.
범위
정수는 얼마나 크거나 작을 수 있나요? PHP 정수는 C의 긴 유형에 해당하고 해당 유형은 사용 중인 기계 시스템의 단어 길이에 따라 다르기 때문에 이 질문에 명확하게 대답하기는 어렵습니다. 그러나 대부분의 일반적인 시스템에서 가장 큰 정수는 "231-1"(또는 2,147,483,647)이고 가장 작은(음수) 정수는 "-(231-1)"(또는 -2,147,483,647)입니다.
우리가 아는 한, 현재 완벽한 표현식에서 가장 큰 정수를 지적할 수 있는 PHP 상수는 없습니다(C 언어의 MAXINT와 유사). 궁금한 사항이 있는 경우 다음 보충 콘텐츠를 참조하세요. 매우 큰 정수를 사용해야 한다면 PHP에는 12장의 "BC" 섹션을 참조하세요.
double 유형
double은 배정밀도 부동 소수점 숫자입니다. 예를 들어
$first_double = 123.456
$second_double = 0.456; 🎜>
$seven_double = 2.0;
$even_double은 "정수형(반올림)" 숫자이지만 정수형이라는 뜻은 아닙니다. 정수형과 다중 정밀도 유형은 서로 다른 기본 형식으로 저장되지만, 예를 들어 다음 계산 공식은 다음과 같습니다.
$five = $even_double+3;
의 결과는 배수입니다. 나열된 결과가 "5"인 경우에도 정수 유형이 아닌 정밀도 유형 숫자입니다. 그러나 모든 경우에 수학 표현식에서 배정밀도 부동 소수점 숫자와 정수를 자유롭게 혼합하고 PHP에서 처리할 유형을 선택하도록 할 수 있습니다.
기본적으로 배수는 필요한 최소 소수 자릿수와 함께 나열됩니다. 예를 들어 프로그램 코드에서는
$many = 2.2888800
$many_2 = 2.2111200;
$few = $many + $many_2;
Print(“$many + $many_2 = $few
”);
다음 출력은 다음에서 생성됩니다. 브라우저:
2.28888 + 2.21112 = 4.5
출력 표시 결과를 더 정확하게 제어하려면 10장의 printf 함수를 참조하세요
읽기 형식
배정밀도 부동 소수점 숫자의 일반적인 형식은 "-X.Y"입니다. 여기서 "-"는 선택 사항이며 음수를 지정하는 데 사용됩니다. X와 Y는 0-9 사이의 숫자 순서입니다. X 부분은 생략할 수 있으며(숫자가 -1.0에서 1.0 사이인 경우), Y 부분도 생략할 수 있습니다(소수점 없음). 선행 및 후행 0은 무시할 수 있습니다.
$small_긍정적 = 0.12345
$small_negative = -.12345
$even_double = 2.00000;
$still_double = 2.;
또한 이전 형식의 끝에 문자를 추가하여 이중 산업 길이를 과학적 표기법으로 지정할 수 있습니다. 예를 들어 "2.2e-3"은 정수 10으로 "2.2x10-3"에 해당합니다. 숫자의 부동 소수점 부분은 1.0에서 10.0 사이의 범위로 엄격하게 제한될 필요는 없습니다. 다음 범위 루틴 코드 줄은 모두 유효합니다.
$small_긍정적=5.6-3;
Ptint(“small_static is $small_postive
”)
$ Large_Positive=2.8e+16;
Ptint(“large_Positive는 $large_postive입니다
”);
$small_negative = -2222e-10;
Ptint(“small_negative는 $small_negative입니다
”);
$large_negative=-0.00189e6;
Ptint(“large_negative $large_negative
”);
브라우저의 출력은 다음과 같습니다.
small_긍정성은 0.0055
larger_긍정적은 2.8e+16
sall_negative is -2.222e-07
large_negative is -1890
8진수 및 16진수 정수와 마찬가지로 PHP가 숫자 읽기를 마치면 다음과 같이 읽습니다. 형식은 이전 변수와 관련이 없습니다. 원래는 과학적 표기법으로 지정되었다는 사실을 기억하지 못합니다. 인쇄된 값을 출력할 때 PHP는 숫자 값에서 가장 극단적인 크기를 사용하도록 자체적으로 결정하지만 이는 원래 읽기 형식과는 아무런 관련이 없습니다.
위 내용은 PHP 학습 가이드 - Chapter 6의 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!