PHP 함수 정의
<?php
function divide($dividend, $divisor){
return $dividend / $divisor;
}
echo divide(12, 4);
echo divide('sa', 'sd');
이 코드 는 언뜻 보기 에는 문제 가 없 지만,만약 당신 이 그것 에'임 의'인 자 를 전달 하면 문제 가 생 길 것 입 니 다.좋 은 코드 를 쓰 는 것 은 끝 이 없 는 과정 이다.우리 가 PHP 함 수 를 만 드 는 방식 을 개선 합 시다.위의 코드 를 보고 두 번 째 함수 호출 에 어떤 상황 이 발생 할 지 생각해 보 세 요.그것 은 입력 한 모든 인 자 를 받 아들 이 고 실행 을 시도 한 후에 수학 적 오 류 를 던 질 것 이다.그러나 우 리 는 어떻게 해야만 함수 가 정확하게 실행 할 수 있 는 인 자 를 엄 격 히 받 아들 일 수 있 습 니까?현대 의 PHP 는 이 문 제 를 해결 하고 코드 의 질 을 한 단계 더 향상 시 킬 수 있 는 더 많은 묘법 이 있 습 니 다.bug 가 없습니다.
함수 매개 변수 와 그들의 데이터 형식
함 수 를 정확하게 실행 할 수 있 는 인자 만 받 도록 엄 격 히 제어 할 수 있 습 니 다.위의 함수 정 의 를 바 꿉 니 다:
<?php
function divide(int $dividend, int $divisor){
return $dividend / $divisor;
}
echo divide(12, 4);
echo divide('sa', 'sd');
현재 이 함 수 를 두 번 째 로 호출 하면 치 명 적 인 오 류 를 던 져 서 필요 한 매개 변 수 는 정수 형식 이 어야 한다 고 지적 합 니 다.너 는 다른 방식 으로 파 라 메 터 를 처리 할 수 있다.
<?php
//
function getName(string $firstName, string $lastName = ''){
return $firstName . ' ' . $lastName;
}
echo getName('Muhammad', 'Nauman'); // Muhammad Nauman
echo getName('Adam'); // Adam
function divide(int $dividend, int $divisor = 2){
return $dividend / $divisor;
}
echo divide(12, 4); // 3
echo divide(12); // 6
// Request $request
function getReuestParams(Request $request){
return $request->only('name', 'email');
}
정의 할 때 선택 가능 한 매개 변수 나 기본 값 을 가 진 매개 변 수 를 마지막 매개 변수 로 합 니 다.PHP 7.1 도 교체 가능 한 데이터 에 위조 유형 을 소개 했다.그것 은 교체 가능 한 모든 데 이 터 를 받 을 수 있다.
위의 그림 은 iterable 데이터 형식 을 사용 한 함수 입 니 다.
이제 코드 를 통 해 우 리 는 더 많이 제어 할 수 있 지 않 습 니까?그래,정말 그래!
함수 와 그들의 반환 값
지정 한 함수 에 전달 되 는 매개 변수 형식 을 제어 할 수 있 듯 이 함수 의 반환 값 형식 도 제어 할 수 있 습 니 다.함수 가 항상 같은 데이터 형식 으로 돌아 가 고 무 너 지지 않도록 할 수 있 습 니 다.우 리 는 위의 코드 를 바 꾸 었 다.
<?php
//
function getName(string $firstName, string $lastName = '') : string {
return $firstName . ' ' . $lastName;
}
echo getName('Muhammad', 'Nauman'); // Muhammad Nauman
echo getName('Adam'); // Adam
function divide(int $dividend, int $divisor = 2) : int {
return $dividend / $divisor;
}
echo divide(12, 4); // 3
echo divide(12); // 6
// Request $request
function getReuestParams(Request $request) : array {
return $request->only('name', 'email');
}
// void
$attribute = 2;
function changeAttribute(string &$param, $value) : void {
$param = $value;
}
changeAttribute($attribute, 5);
echo $attribute; // 5
PHP 는 이러한 기능 을 점차 도입 했다.예 를 들 어 5.1 버 전에 도 입 된 배열 형식 을 매개 변수 로 하고 5.4 버 전에 도 입 된 호출 가능 한 유형(callable type),7.1 버 전에 도 입 된 void 반환 유형 등 이다.선택 가능 한 매개 변수 VS 비어 있 는 매개 변수
선택 가능 한 매개 변 수 를 제외 하고 비 울 수 있 는 매개 변 수 를 정의 할 수 있 습 니 다.이것 은 비 울 수 있 는 매개 변수 유형 을 정의 할 수 있 음 을 의미 합 니 다.우 리 는 예 를 보 자.
<?php
function nullableParameter(?string $name)
{
return $name;
}
echo nullableParameter(null); //
echo nullableParameter('Nauman'); // Nauman
echo nullableParameter(); //
function nullableParameterWithReturnType(?string $name) : string
{
return $name;
}
echo nullableParameter(null); // , string
echo nullableParameter('Nauman'); // Nauman
function nullableReturnType(string $name) : ?string
{
return $name;
}
echo nullableParameter(null); // ,$name string
echo nullableParameter('Nauman'); // Nauman
분명히 빈 매개 변 수 는 선택 할 수 있 는 매개 변수 가 아 닙 니 다.값 이나 null 을 전달 해 야 합 니 다.나 는 개인 적 으로 빈 값 을 선택 가능 한 매개 변수 로 사용 하 는 것 을 좋아 하지만,이것 은 너의 임무 수요 에 달 려 있다.이상 은 PHP 함 수 를 정의 하 는 상세 한 내용 입 니 다.PHP 함 수 를 정의 하 는 데 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.