> 백엔드 개발 > PHP8 > PHP8 새로운 기능 일치 표현식에 대한 자세한 설명

PHP8 새로운 기능 일치 표현식에 대한 자세한 설명

Guanhui
풀어 주다: 2023-02-17 11:30:02
앞으로
4586명이 탐색했습니다.

PHP8 새로운 기능 일치 표현식에 대한 자세한 설명

PHP8 alpha2가 최근에 새로운 키워드가 도입되었습니다: match. 이 키워드의 기능은 스위치와 다소 유사합니다.

이거 좀 재미있을 것 같고, 단어 일치도 너무 좋은데 어떻게 하는 걸까요?

과거에는 다음과 유사한 값 변환 작업을 위해 스위치를 자주 사용할 수 있었습니다.

function convert($input) {
    switch ($input) {
        case "true":
            $result = 1;
        break;
        case "false":
            $result = 0;
        break;
        case "null":
            $result = NULL;
        break;
    }
    return $result;
}
로그인 후 복사

그런 다음 match 키워드를 사용하면 다음과 같이 될 수 있습니다.

function converti($input) {
    return match($input) {
        "true" => 1,
        "false" => 0,
        "null" => NULL,
    };
}
로그인 후 복사

switch와 비교하면 match는 값을 직접 반환합니다. , 더 이상 위 스위치 예제의 $result 중간 변수가 필요하지 않습니다.

그리고 스위치의 여러 케이스와 블록 하나와 유사하게 다음과 같이 여러 일치 조건을 함께 작성할 수도 있습니다.

return match($input) {
    "true", "on" => 1,
    "false", "off" => 0,
    "null", "empty", "NaN" => NULL,
};
로그인 후 복사

스위치와는 다르다는 점에 유의해야 합니다. 스위치를 사용할 때 자주 접할 수 있습니다. 이 이상한 문제:

$input = "2 person";
switch ($input) {
    case 2:
        echo "bad";
    break;
}
로그인 후 복사

실제로는 bad가 출력되는 것을 볼 수 있습니다. 이는 스위치가 느슨한 비교(==)를 사용하기 때문입니다. Match에서는 이 문제가 발생하지 않습니다. 이는 엄격한 비교(===)를 사용하므로 값과 유형이 완전히 동일해야 합니다.

또한 입력이 일치의 모든 조건에 의해 충족될 수 없는 경우 일치는 UnhandledMatchError 예외를 발생시킵니다:

function convert($input) {
    return match($input) {
        "true" => 1,
    };
}
convert("false");
로그인 후 복사

다음을 얻습니다:

Fatal error: Uncaught UnhandledMatchError: Unhandled match value of type string
로그인 후 복사

이렇게 하면 채우지 않을 것에 대해 걱정할 필요가 없습니다. 모든 경기 조건은 예측할 수 없습니다.

추천 튜토리얼: "PHP8"

위 내용은 PHP8 새로운 기능 일치 표현식에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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