> 백엔드 개발 > PHP 튜토리얼 > PHP 학습 가이드 - 6장(속편)

PHP 학습 가이드 - 6장(속편)

黄舟
풀어 주다: 2023-03-04 07:08:01
원래의
1054명이 탐색했습니다.


문자열의 줄 바꿈 기호

PHP는 줄 바꿈 기호에 대해 이스케이프 이스케이프 시퀀스(
)를 제공하지만, 알아두면 좋습니다. 문자 그대로 문자열 중간에 줄 바꿈을 추가할 수 있으며 PHP도 이를 처리할 수 있습니다. 이는 HTML 문자열을 생성할 때 편리합니다. 브라우저는 개행 문자(
)를 무시하므로 문자열 형식을 개행 문자로 지정하여 PHP 코드 줄을 더 짧게 만들 수 있습니다.

PHP 학습 가이드 - 6장(속편)

텍스트 편집기에서 처음 두 줄 끝에 숨겨진 "Enter" 키를 누르세요. 이러한 개행 기호는 문자열에 유지되므로 인쇄 명령문은 세 줄을 생성합니다. PHP 출력(줄 길이는 편집기에 따라 다릅니다. 표시할 때 편집기가 자동으로 줄 바꿈하면 실제로 긴 세 줄의 코드가 표시됩니다). 그러나 브라우저 프로그램은 이러한 줄 바꿈을 무시하고 표시할 때 줄 바꿈 여부와 위치를 스스로 결정합니다. 또한 소스 코드를 관찰하기 위해 브라우저의 보기 소스 코드를 사용하는 경우 이러한 줄 바꿈을 볼 수 있습니다.

제한

사용 가능한 메모리 제한 내에서 문자열 길이에 인위적인 제한이 없으며 일반적으로 문자열 길이에 제한이 없어야 합니다

배열

PHP의 배열 유형을 사용하면 프로그래머는 다양한 유형의 값을 함께 구성하고 단어(또는 이름)별로 색인을 생성할 수 있습니다. $thing1, $thing2, $thing3과 같은 이름의 변수를 사용하는 경우 배열($things[1], $thing[2], $thing[3] 등)을 사용하는 것이 좋습니다. 배열 요소는 대괄호 안의 인덱스(이 예에서는 [1], [2], [3] 등)를 통해 사용되며, 서로 다른 유형의 요소를 동일한 배열에 할당할 수 있습니다.

PHP 배열을 배우는 가장 좋은 방법은 예제를 통해서입니다. 다음은 첫 번째 지정 전후의 배열 변수 내용을 볼 수 있는 몇 가지 간단한 프로그램 예입니다.

PHP 학습 가이드 - 6장(속편)

첫 번째 과제 전후에 어떤 일이 일어나는지 설명해 보겠습니다. 지정하기 전에는 이름에도 불구하고 PHP는 $my_array 변수가 배열임을 인식하지 못하고 다른 변수처럼 지정되지 않은 변수로 처리합니다. 즉, 변수를 큰따옴표로 묶은 문자열로 묶으면 변수가 빈 문자열로 해석됩니다. 배열 인덱스가 불특정 변수([5])를 참조하는 경우 불특정 변수로도 사용됩니다. 결과적으로 처음 세 개의 print 문은 모두 [is]로 끝납니다.

지정하면 $my_array는 공식적으로 배열이 되며, 결과적으로 큰따옴표로 묶인 문자열이 포함되면 "Array" 문자열이 출력됩니다. 숫자 5로 인덱스된 배열 셀은 문자열 "Slot#6"으로 채워져 있으므로(실제로 대부분의 프로그래밍 언어에서 배열 요소는 0부터 계산됩니다) 인덱스 번호 5를 사용하여 문자열을 검색할 수 있습니다. 이것이 변경된 유일한 사항입니다. $my_array의 셀 0에는 아직 아무것도 없으므로 이전과 같이 변경 사항이 없습니다.

배열 실행

배열은 PHP의 가장 멋지고 유용한 기능 중 하나입니다. 다른 언어의 배열과 비슷해 보이지만 실제로는 구현하기가 상당히 불편합니다.

대부분의 프로그래밍 언어에서는 다음과 유사한 문을 사용하여 배열을 선언합니다.

Int int_array[10];//이것은 PHP 구문 조화가 아닙니다!

이 명령문은 총 10개의 연속된 정수를 메모리에 설정합니다. 이 변수는 int_array 범위 0~9의 숫자 인덱스에 따라 액세스할 수 있습니다.

반면, PHP 배열은 서로 결합될 수 있습니다. 배열을 지정할 때 실제로 새 열을 추가하고 이를 새 인덱스와 결합하면 이 값을 얻을 수 있습니다. 해시 테이블에 익숙한 프로그래머에게는 의미가 있지만 PHP 배열은 다른 언어의 해시 테이블과 비슷합니다.]

이는 한 가지 의미를 내포합니다. 즉, 독자는 매우 많은 수의 배열 셀을 지정하는 것에 대해 걱정할 필요가 없습니다. 예:

My_ayyay[100000000]= “not Scared”/ /문제 없습니다

이렇게 설정하면 중앙에 있는 그리드가 실제로 많이 존재하지 않으므로 메모리를 차지하지 않습니다. .

문자열을 배열 인덱스로 사용

지금까지 배열 예제에서는 숫자를 인덱스하는 데 정수만 사용했습니다. 실제로 PHP는 문자열 값을 인덱스로 사용할 수도 있습니다.

$tasty['스페인어']= "빠에야";

$tast ['일본어']= "회";

$tast ['스코틀랜드어']= "해기스" ? ";

이러한 인덱스는 숫자 인덱스와 동일하게 사용되며, 숫자 인덱스와 문자열 인덱스는 충돌 없이 동일한 배열에서 사용할 수 있습니다.

구조 유형이 누락된 이유는 무엇인가요?

일부 프로그래밍 언어(C, Pascal)는 "구조" 또는 "레코드" 유형을 제공하여 다양한 유형의 변수를 함께 패키징할 수 있습니다. 이러한 언어에서 복합 유형을 선택하는 기본 경험 법칙은 물의 양을 포함하는 모든 값이 동일한 유형인 경우, 그렇지 않으면 구조를 사용하는 것입니다.

이제 PHP에는 더 특별한 속성 외에도 레코드나 구조적 유형과 유사한 특성을 갖는 객체 유형이 있습니다. 그러나 객체를 도입하기 전에는 PHP 배열이 한 가지 유형의 값만 사용하도록 제한되지 않기 때문에 PHP에는 실제로 구조적 유형이 필요하지 않습니다. 코드 사전을 구조화된 언어에서 PHP로 이동하는 경우 한 가지 가능성은 결합 가능한 배열을 사용하고 문자열 인덱스를 사용하여 원래 필드 이름에 대응하는 것입니다.

기타 배열 기능

사실 이 장에서는 배열에 대해 간략하게 소개할 뿐입니다. 또한 배열은 다차원적일 수도 있고 다양한 방법으로 지정할 수 있으며 유용한 기능이 많이 있습니다. 사용할 수 있는 함수 배열은 관찰, 재사용 및 조작이 더 쉽습니다. 배열에 대해서는 이 책의 11장에서 더 자세히 설명할 것입니다.

객체

PHP의 또 다른 기본 유형은 PHP가 객체 지향 프로그래밍 언어로 들어가는 채널인 객체입니다. 배열과 마찬가지로 객체도 복합 유형이며 다양한 다른 유형을 하나의 객체로 통합할 수 있습니다. 객체는 함수를 데이터로 통합하는 기능을 포함하여 추가적이고 보다 정확한 속성을 가지며 다른 객체 지향 개념을 사용할 수 있습니다. , 자세한 내용은 해당 섹션을 참조하는 것이 좋습니다.

리소스

리소스는 PHP 자체 외부에서 메모리를 참조하는 데 사용되는 특수한 값입니다. PHP를 작성하기 위해 리소스에 대해 많이 알 필요는 없습니다. 하지만 아래의 "리소스로 수행할 작업" 섹션은 건너뛰어도 됩니다.

자원이란 무엇입니까?

리소스는 PHP가 외부 프로그램(데이터베이스 또는 이미지 처리 프로그램일 수 있음)과 통신하는 데 사용하는 유형입니다. 일반적으로 PHP 프로그래머는 이러한 프로그램에 의해 메모리에 구성된 리소스를 사용해야 할 수 있습니다. PHP 디자인에서 메모리 해제에 대해 걱정해야 합니다. PHP 프로그램에서 문자열을 생성하면(메모리 위치의 일부를 차지해야 함) 프로그램이 끝날 때까지(또는 설치된 수요일까지 모든 세부 정보를 잊어버릴 수 있습니다.) 서버)는 즉시는 아니더라도 프로그램 실행이 완료된 후 적절한 메모리를 해제합니다.

외부 프로그램(데이터베이스 등)은 메모리를 그렇게 현명하게 해제하지 못할 수 있습니다. 프로그램이 실행된 후 PHP가 이를 처리하는 방식은 외부 프로그램에서 메모리에 액세스하는 모든 특수 함수입니다. 이와 같이 리소스를 반환하고 PHP가 귀하의 프로그램이 리소스에 액세스할 수 있는지 확인하도록 허용합니다. 아무도 리소스를 사용할 수 없는 경우 PHP는 리소스를 참조하여 이러한 종류의 문제를 올바르게 해결할 수 있습니다. 참조 횟수가 0이면 리소스를 해제할 수 있습니다.

자원을 어떻게 처리하나요?

일반적으로 PHP 프로그래머는 이러한 리소스를 직접 생성할 필요가 없으며 일부 특수 함수를 호출하여 이러한 리소스 유형을 다시 전달하고 리소스 유형이 필요한 다른 함수에 전달합니다. 예를 들어(이 책의 2부에서 다루겠지만) mysql_connect() 함수(MySQL 데이터 참조에 대한 연결을 반환함)를 호출하고 결과를 변수에 저장한 후 mysql_query()에 전달할 수 있습니다. 기능(데이터베이스에 액세스하려면 이 연결을 사용하십시오).

기본적으로 이 연결 리소스를 사용하기 위해 해야 할 일은 이를 변수에 저장하고 이 리소스를 종료한 후 PHP를 통해 이를 지울 수 있습니다. 어쨌든 이 리소스가 프로그램 실행 중에 많은 메모리를 소모했다고 생각하여 프로그램이 끝나기 전에 일찍 해제하고 싶다면 다음과 같이 해야 합니다:

$my_resource=mysql_connect(); //저장변수

//연결 리소스를 사용하는 프로그램 조각

$my_resource=NULL;//변수는 더 이상 원래 리소스를 참조하지 않습니다.

$my_resource 사양 PHP는 MySQL 리소스를 해제하기 전에 다른 프로그램이 MySQL 리소스를 사용하고 있지 않은지 확인합니다.

타입 테스팅

변수는 재할당에 의해 타입이 바뀔 수 있기 때문에 프로그램 실행 시 특정 값의 타입을 파악해야 하는 경우가 있습니다. PHP는 일반적인 유형 테스트 함수(gettype())를 제공할 뿐만 아니라 다섯 가지 데이터 유형 각각에 대한 부울 함수도 제공합니다. 이러한 함수 중 일부에는 대체 가능한 이름도 있습니다.

표 6-1 함수 유형 테스트

PHP 학습 가이드 - 6장(속편)

명세 및 강제

앞서 언급했듯이 PHP는 이 기사에서 필요할 때 자동으로 한 유형을 다른 유형으로 변환하지만, PHP 프로그래머는 강제로 변환할 수도 있습니다. 두 경우 모두 프로그램 설계자는 어떤 결과가 예상되는지 알아야 합니다.

유형 변환 동작

다음은 PHP에서 한 유형을 다른 유형으로 변환할 때의 몇 가지 일반적인 규칙입니다.

정수에서 다중 정밀도 부동 소수점으로: 정확한 일치 설정 배정밀도 부동 소수점 숫자(예: int4는 double4.0배가 됨)

배정밀도 부동 소수점 숫자를 정수로 변환: 소수 부분은 반올림됩니다.

숫자 대 부울: 0이면 FALSE, 그렇지 않으면 TRUE입니다.

숫자에서 문자열로: 문자열은 숫자로 표시될 때 어떻게 보이는지에 따라 생성됩니다. 정수 출력은 일련의 숫자로 표시되며, 배정밀도 부동 소수점 숫자는 필요한 최소 정밀도로 출력됩니다. 소수점 이하 문자가 많은 배정밀도 부동 소수점 값은 카사켄 기호로 변환됩니다. 표기법.

부울 대 숫자: TRUE이면 1을 얻고, FALSE이면 0을 얻습니다.

부울 문자열: TRUE이면 1을 얻고, FALSE이면 빈 문자열을 얻습니다.

숫자에 대한 NULL: 0

부울에 대한 NULL: FALSE

문자열에서 숫자에: 문자열에서 숫자를 "읽고" 주어진 유형으로 바꾸는 것과 같습니다. . 숫자를 읽을 수 없으면 값은 0입니다. 성공하기 위해 모든 문자열을 읽을 필요는 없습니다.

문자열을 부울로: 빈 문자열이거나 0이면 FALSE, 그렇지 않으면 TRUE입니다.

단순 유형 배열(숫자 또는 문자열): 인덱스 0에 할당된 값으로 새 배열을 생성하는 것과 동일합니다.

배열을 숫자로: 정의되지 않음(아래 설명 참조)

배열을 부울로: 배열에 요소가 없으면 FALSE, 그렇지 않으면 TRUE입니다.

배열을 문자열로: "Arryay"입니다.

객체를 숫자로: 정의되지 않음(아래 설명 참조).

객체 대 부울: 객체에 값이 있는 멤버 변수가 포함되어 있으면 TRUE이고, 그렇지 않으면 FALSE입니다.

객체를 문자열로: "Object".

리소스를 부울로: FALSE.

숫자에 대한 리소스: 정의되지 않음(자세한 내용은 아래 참조)

숫자에 대한 리소스: 때때로 "리소스 ID #1"과 같습니다(그러나 이 규칙을 크게 신뢰할 수는 없습니다).

위 목록에서 숫자 유형으로 변환할 때 일부 유형이 정의되지 않은 것을 발견했습니다. 위 설명에서 정의되지 않음은 PHP 디자이너가 이전 PHP 버전에서 아무것도 지정하지 않았음을 의미합니다. 변환 규칙은 최종입니다. , 따라서 나쁜 소식은 프로그램 작성 방법에 따라 다르다는 것입니다. 사용 중인 특정 PHP 버전에서는 숫자 유형으로 변환할 수 있지만 다음 버전에서는 작동하지 않을 수 있습니다.

위 내용은 PHP 학습 가이드 - 6장(계속) 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿