PHP7.0 및 7.1의 일부 새로운 기능에 대한 메모 코드 공유

黄舟
풀어 주다: 2023-03-06 18:16:02
원래의
2407명이 탐색했습니다.

다음은 PHP 7.0 및 7.1 버전의 몇 가지 새로운 기능입니다.

PHP 7.0

?? 연산자

$foo = null;
$bar = $foo ?? 123;

// 相当于 $bar = isset($bar) ? $bar : 123
로그인 후 복사

매개변수 유형, 반환 유형 및 엄격 모드

// 在严格模式下,传参类型不匹配会抛出错误

declare(strict_types=1);

function fn(int $a) : int
{
    echo $a;
}

fn(1.2);
로그인 후 복사

조합 비교 연산자

는 같으면 0을 반환합니다.

전자는 후자보다 크면 1을 반환합니다.
후자는 같으면 -1을 반환합니다.

var_dump($a <=> $b);
로그인 후 복사
rrree

반환 값이 있는 생성기

$a = 0;
$b = "abc";

var_dump($a <=> $b);
// 注意,字符串在与数字比较时会被当作 0;
로그인 후 복사

반환 값 없이 $generator->getReturn()를 사용하면 null이 반환됩니다. 또한 생성기가 완전히 출력되지 않는 경우 $generator->getReturn()을 사용하면 오류가 보고됩니다.

function generator()
{
    yield 1;
    yield 2;
    return "a";
}

$generator = generator();
foreach ($generator as $val) {
    var_dump($val);
}

var_dump($generator->getReturn());
로그인 후 복사

정의상수배열

function generator()
{
    yield 1;
    yield 2;
    return "a";
}

$generator = generator();

var_dump($generator->current());
var_dump($generator->next());

var_dump($generator->getReturn()); // 报错

var_dump($generator->current());
var_dump($generator->next());
로그인 후 복사

다중 사용 선언

define(&#39;COLORS&#39;, [&#39;red&#39;, &#39;blue&#39;, &#39;black&#39;]);
echo COLORS[1];  // red
로그인 후 복사

배열 구조 분해

use some\namespace\{ClassA, ClassB, ClassC as C};
use function some\namespace\{fn_a, fn_b, fn_c};
use const some\namespace\{ConstA, ConstB, ConstC};
로그인 후 복사

PHP 7.1

JIT

JIT, 런타임 중에 일부 명령어를 기계어 코드로 변환합니다. 컴퓨팅 집약적인 애플리케이션의 성능이 크게 향상되었습니다.

선택적 매개변수 유형

list($a, $b) = ["a", "b"];
로그인 후 복사

기본 매개변수 값과의 차이점에 유의하세요:

function(?string $name)
{
    var_dump($name);
}

// 传参类型为 string 或 null
로그인 후 복사

배열 구조 분해

function(string $name = "default-name")
{
    var_dump($name);
}
로그인 후 복사

반복 가능하고 호출 가능한 의사 클래스

콜러블 유형을 사용하여 매개변수 유형이 호출 가능한 유형임을 나타냅니다(Function, 호출을 구현하는 클래스 인스턴스).

iterable을 사용하세요. type 반복 가능한 유형(배열, Iterator 또는 Traversable 인터페이스 을 구현하는 클래스 인스턴스)에 전달되는 매개변수 유형을 제한합니다.

다중 예외 유형 캡처

[$a, $b] = ["a", "b"];
로그인 후 복사

위 내용은 PHP7.0 및 7.1의 일부 새로운 기능에 대한 메모 코드 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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