Curso de PHP – Aula 71 – Parâmetros Tipados – eXcript

안녕하세요, 우리 PHP 과정의 또 다른 에피소드에 오신 것을 환영합니다 우리는 매개 변수를 입력 한 함수, 즉 호출 될 때 어떤 종류의 인수가 전달되어야하는지 정의하십시오

PHP 버전 7에서는 유형이 지정된 매개 변수 즉 노드를 정의 할 수 있습니다 함수가 수신해야하는 매개 변수와이 매개 변수의 유형을 정의 할 수 있습니다 예를 들어 여기에서는 우리가 지금까지 연구 한 것처럼 함수의 정의를 가지고 있습니다 그래서 우리는 함수를 선언하기 위해 예약어 function을 사용합니다 우리의 "func"함수는 함수에 대한 매개 변수를 정의하고, 즉,이 함수는 $ x 매개 변수를받습니다

그러나 표기법이 없기 때문에이 함수에 전달할 수 있습니다 어떤 종류의 가치가 전달되어야하는지 말하기 그런 다음 PHP7은 타이핑을 구현했습니다 즉, 우리가 정의 할 수있는 매개 변수의 유형 우리 함수는받을 것이고, 예를 들어, 우리는 int 타입을 넣고, 우리는 변수 이름을 넣었습니다 그래서이 함수를 호출하려면, 정수 값이 전달되어야합니다

사각형의 면적을 계산하는 함수를 구현해 보겠습니다 따라서이 함수를 호출하려면 2 개의 매개 변수를 전달해야합니다 대 / 소문자, 정수 유형의 2 개 매개 변수 그래서 우리는 우리의 헤더에 그것을 설정할 것입니다 전달되어야하는 매개 변수 유형을 함수화하십시오 함수를 원한다고 가정 해 봅시다

이 함수의 이름은 getArea ()가 될 것이고 괄호를 열고 닫을 수 있으며 open과 첫 번째 매개 변수를 정수로 정의하고 심지어 $ x 그런 다음 두 번째 매개 변수를 정의하고 $ y를 호출 해 봅시다 이제 우리는 이미 우리의 기능을 구현할 수 있습니다 그래서 우리가 지역을 계산하기 위해, 우리는 $ x와 $를 곱하면됩니다 매개 변수의 곱셈을 돌려 보겠습니다

$ y 매개 변수로 $ x 지시를 끝내려면 세미콜론 그래서 우리는 끝냈다 함수의 구현, 즉 함수를 구현하는 것입니다 getArea ()와 같으며 2 개의 매개 변수를 받아야한다고 정의합니다

첫 번째 정수 매개 변수 여야하며 두 번째 매개 변수는 정수 매개 변수 여야합니다 완료 우리는 첫 번째 매개 변수의 곱셈을 두 번째 매개 변수로 수행하여 결과를 전달했습니다 곱셈을 함수 반환으로 사용합니다 그 다음에, 우리는 "echo" 그리고 여기서 print 함수를 호출하면 getArea ()가 리턴됩니다 그래서 $ x를 10이되고 $ y는 5입니다

우리가 볼 수 있듯이, 칙령은 우리를 위해 여기에 놓았습니다 예상되는 매개 변수는 정수입니다 즉, $ x는 정수형입니다 그리고 $ y는 말하고있다 실제로 우리 편집자는 기능의 복귀가 전체가 될 것이라고 말하고 있습니다

즉, 동일한 값이 전달되는 값을 알고 있으므로 정수형이라면 반환 값이 정수가 될 것이라고 추론 할 수 있습니다 그런 다음, 세미콜론으로 지시를 마치면 실행해야하며 볼 수있는 것처럼 여기 콘솔에 값 50을 인쇄했습니다 즉, 우리는 함수를 구현했습니다 첫 번째와 두 번째 매개 변수의 유형을 정의합니다 이제 정수를 전달하는 대신, 우리는 문자열을 전달할 것입니다

즉, 문자열 인 것으로 숫자 10을 전달합니다 그리고 우리가 볼 수 있듯이, 콘솔에 50이 인쇄되었습니다 즉, PHP는 자동으로 변환, 첫 번째 매개 변수는 정수 유형에 대해 숫자 10을 포함하는 문자열입니다 이제 모든 값의 계산을 수행하는 함수를 구현하려고합니다 매개 변수로 전달됩니다

우리가 함수를 원한다고 가정 해 봅시다 이 함수의 이름을 getSum ()으로하고, 괄호를 열고 닫고, 정의 해 봅시다 매개 변수로이 함수가 수신해야하는 정수, 정수를 포함하는 배열, 이것은 우리가 이미 공부 한 표기법이며, 함수가 매개 변수로 여러 값을 사용하지만 값은 우리는 그들이 전체 유형이라고 기대하고 있습니다 이제 함수의 반환을 정의 해 봅시다 array_sum 인 것으로, 즉 합격되며 모든 값이 전달됩니다

매개 변수로 따라서 paramere 값인 array_sum () 함수를 살펴 보겠습니다 지시를 끝내려면 세미콜론 여기 아래로 가자 "echo"이제 우리 함수 getSum ()을 열고 닫는 괄호를 호출하겠습니다

우리가 1,2,3,4,5,6 세미콜론의 합계가 지시를 끝내기를 원한다고 가정 해 봅시다 줄 바꿈을 시작합시다 우리는 그것을 처형했습니다 그리고 우리가 볼 수 있듯이, 그것은 인쇄되었습니다 50 다음에 숫자 21이 인쇄되었습니다

즉, 1의 모든 자릿수의 합계 최대 6은 21입니다 그래서 우리는 getSum () 함수를 설정하고, 정수형의 값 집합을 받아야합니다 즉, 형식을 정의합니다 이 배열의 정수 유형입니다 그러나 우리가 보았 듯이 String을 전달하면 우리가 정의하고있는 PHP는 변환하려고 시도합니다

우리는 다른 유형을 단순히 통과하면 아무 일도 일어나지 않습니다 예를 들어, 다른 값을 전달할 것입니다 그러나 숫자 100을 전달할 경우, 우리는 String으로 전달합니다 실행하면 우리는 PHP는 문자열 100을 정수 값으로 변환했습니다 그래서 우리는 PHP의 버전 7은 과거 유형이 예상되지 않는다면, PHP가 예외를 발생시킵니다

즉, 예상되는 유형을 정의하면 매개 변수의 정수 유형이고 String을 전달하면 우리는 키워야합니다 전달 된 값이 정의 된 유형과 일치하지 않는다는 예외입니다 우리를 위해 우리는 PHP 파일의 시작 부분에서 작업하고, declare () 함수를 사용하고 괄호를 닫고 세미콜론을 사용하여 마칩니다 선언문을 작성하고 strict_types = 1이라고 정의 할 것입니다 즉 폼을 정의하고 있습니다 엄격한 유형의 이제 프로그램을 실행하면 getArea () 함수에 의해 String이 전달되기 때문에 예외가 발생합니다

다른 String도 getSum () 함수에 의해 전달됩니다 처음에는 getSum () 함수를 주석으로 표시하고 함수에 대해 살펴 보겠습니다 getArea () 그리고 우리는 우리의 프로그램을 실행할 것이고, 우리는 실행했고 우리가 볼 수있는 것처럼, 여기에 콘솔에 오류 메시지가 인쇄되었으며이 메시지는 getArea () 함수에 대한 인수 인 경우이 인수는 정수 유형이어야하며, 그러나 String 유형이 전달되었습니다 따라서 우리가 PHP 파일의 맨 위에서 선언한다면, 우리가 엄격한 방식으로 일하기를 원한다면, 우리는 우리가 함수에 정의 된 유형의 매개 변수를 전달하지 않으면 함수가됩니다 예외가 발생했습니다

그래서 우리가 엄격하게 작업 할 때, PHP, 같은 사람이 관찰하면 자동으로 변환을 시도하지 않습니다 과거가 다른 경우, 정의 된 것과는 다른 예외가 발생합니다 전달 된 값은 함수에서 구현 된 것과 동일하지 않습니다 그래서 가자 여기서 올바른지,이 String 마크 업을 가져 가자

이제 우리는 실행해야하고, 우리는 지금 그것을 가지고 부드럽게 달렸다 마지막으로, 우리가 실제로 가지고 있는지 보자 형식화 된 Array, 즉 실제로 전달해야하는 모든 값을 봅시다 이제 그들은 전체 유형이어야합니다 줄 22를 주석으로 선택 취소하고, 우리는 우리의 프로그램을 운영했으며 우리가 볼 수있는 것처럼 String 매개 변수가 전달되고 정의되었음을 나타내는 예외 Array 요소의 타입은 정수형이 될 것입니다

그래서 우리가 정의한다면 우리는 엄격하게 작업하기를 원하며 매개 변수로 값을 전달합니다 정의 된 유형과 다른 경우 예외가 발생하고 프로그램 실행 중단됩니다 그게 전부입니다이 수업에서 우리는 우리가 어떻게 할 수 있는지 배웁니다 유형을 가진 매개 변수를 정의하십시오

이제 우리는 어떻게 정의하는지, 어떤 종류의 함수가 호출 될 때 전달되어야하는 매개 변수 그래서 그게 다야! 다음 수업에서 만나서 고맙습니다 나중에 보러 오세요!