놀라운 새로운 추가 기능으로 새로운 차원의 PHP 8.1 🎉

5763 단어 phpnews

PHP 개선 사항



PHP는 최근 인기를 얻고 있으며 몇 가지 놀라운 추가 기능으로 우리를 망치고 있습니다. PHP 8.0에는 더 복잡한 정적 유형을 설정하는 데 도움이 되는 Union Type, 성능이 크게 개선된 JIT, 명명된 인수와 같은 추가 기능이 있으며 이는 몇 가지에 불과합니다.

이제 PHP는 Enums, 문자열 키로 배열 풀기, 언어를 새로운 차원으로 끌어올리는 Fibers를 추가하고 있습니다.

열거 형은 무엇이며 왜 신경 써야합니까?



변수가 특정 범위의 값을 취해야 할 때 열거형(열거형)을 인식하지 못하는 사람들에게 사용됩니다. 지금까지 PHP에서 열거형 유형을 생성하려면 아래와 같이 정적 변수 또는 연관 배열을 직접 사용해야 했습니다.

class Car
{
    static $carState = [
        "RUNNING" => "RUNNING",
        "STOPPED" => "STOPPED"
    ];

    private float $_speed = 0;
    private string $_name;
    private string $_state;

    public function __construct(float $speed, string $name, string $carState)
    {
        $this->_name = $name;
        $this->_speed = $speed;
        $this->_state = $carState;
    }
}


여기서 우리는 상태를 사용하여 우리가 가지고 있는 자동차 유형을 결정할 수 있습니다. 대부분의 코드 편집기는 Car::$carState를 눌렀을 때 유형을 입력합니다.

그 문제가 보이십니까? 우리가 선택한 유형을 실제로 사용했는지 클래스는 알 수 없습니다! 이에 대한 해결책은 전달된 변수에 적절한 값이 있는 경우 생성자 또는 설정자를 수동으로 확인하는 것입니다. 그러나 이것이 형편없고 처리해야 할 것보다 더 많은 버그로 이어질 수 있다는 데 동의할 것입니다.

이 문제를 해결하기 위해 열거형이 있습니다.

<?php

enum CarTypes {
    case running;
    case stopped;
}

class Car
{
    static $carState = [
        "RUNNING" => "RUNNING",
        "STOPPED" => "STOPPED"
    ];

    private float $_speed = 0;
    private string $_name;
    private CarTypes $_state;

    public function __construct(float $speed, string $name, CarTypes $carState)
    {
        $this->_name = $name;
        $this->_speed = $speed;
        $this->_state = $carState;
    }
}


이 새로운 내장 데이터 유형을 사용하여 모든 검사를 자동으로 건너뛰고 enum이 대신 처리하도록 할 수 있습니다. 정돈된!

섬유는 어떻습니까?



광섬유는 가상 병렬 처리를 생성하기 위해 '그린 스레드'를 활용하고 있습니다. 컴퓨터가 컨트롤러에서 작업을 수행하거나 데이터베이스 파이버에서 데이터를 가져오는 동안 이러한 작업 간의 트래픽을 조절하는 데 도움이 됩니다.

RFC에 따르면:

The Fiber API is not expected to be used directly in >application-level code. Fibers provide a basic, low-level >flow-control API to create higher-level abstractions that >are then used in application code"



즉, 프로덕션 코드에서 Fiber를 사용하지 않고 오히려 ReactPHP와 같이 이를 활용하는 프레임워크의 도움으로 Fiber를 사용할 것입니다.

PHP 8.1의 모든 변경 사항을 보려면 다음 웹 사이트를 방문하십시오.
https://stitcher.io/blog/new-in-php-81

좋은 웹페이지 즐겨찾기