본문 바로가기

잡인터뷰

PHP 8.2의 새로운 점

반응형

PHP - Php: Hypertext Preprocessor; Backend

캐나다에서 코딩일을 시작한지 어느 10여년이 지났는데,

메인으로 만진 언어는 백엔드로는 PHP이다.

한국에서는 어떤언어를 많이 사용하는지는 잘 모르겠지만,

캐나다에선 물론 최근에는 많이 달라지는 추세지만, 백엔드로 PHP를 여전히 많이 사용한다.

그렇다면 PHP에 대해 조금더 자세히 알아보자.

PHP - Php: Hypertext Preprocessor란

PHP는 웹 개발에 주로 사용되는 서버 측 스크립트 언어로,

"Php: Hypertext Preprocessor"의 약어 이다.

PHP는 동적 웹 페이지 생성, 데이터베이스 연동, 서버 측 데이터 처리 등에 이용된다.

 

PHP는 HTML 코드 내에 삽입하여 사용할 수 있으며,

서버에서 PHP 스크립트를 실행하면 PHP 엔진이 해당 코드를 해석하여 동적인 웹 페이지를 생성하며,

또한, PHP는 데이터베이스와의 연동을 지원하여, 데이터의 조회, 삽입, 수정, 삭제 등을 수행할 수 있다.

 

PHP는 자유롭게 다운로드하고 사용할 수 있는 오픈소스 언어로,

다양한 운영 체제에서 지원되며, 또한, PHP는 다양한 프레임워크와 라이브러리가 개발되어 있어,

보다 쉽고 빠르게 웹 개발을 할 수 있다.

 

PHP는 현재까지도 많은 웹 사이트에서 사용되고 있으며,

대표적인 예로는 Facebook, Wikipedia, WordPress 등이 있다.

PHP 8.2는 PHP 언어의 최신 버전으로, 몇 가지 새로운 기능과 개선 사항이 포함되어 있다.

2023년 4월 1일 기준 PHP 8.2.4

 

반응형

PHP 8.2의 새로운 점

  • Named Parameters Named Parameters
    기능은 함수 호출 시 인자 이름을 명시하여 보다 가독성 있고 유지보수가 용이한 코드 작성을 가능하게 한다.
// -- Named Parameters Named Parameters --
// PHP 8.2 이전 버전
function calculate($x, $y, $z) {
  return $x * $y + $z;
}

$result = calculate(2, 3, 4); // 10

// PHP 8.2 이후 버전
function calculate($x, $y, $z) {
  return $x * $y + $z;
}

$result = calculate(x: 2, y: 3, z: 4); // 10
  • Union Types
    Union Types는 변수 또는 함수의 매개변수가 여러 개의 타입 중 하나일 수 있도록 지원하며, 코드의 유연성을 높여준다.
// -- Union Types --
// PHP 8.2 이전 버전
function multiply($x, $y) {
  return $x * $y;
}

$result = multiply(2, 3); // 6
$result = multiply('2', '3'); // '23'

// PHP 8.2 이후 버전
function multiply(int|float $x, int|float $y): int|float {
  return $x * $y;
}

$result = multiply(2, 3); // 6
$result = multiply(2.5, 3); // 7.5
$result = multiply('2', '3'); // TypeError: Unsupported operand types
  • Readonly Properties
    Readonly Properties 기능은 객체의 속성 값을 읽기 전용으로 만들어 값을 변경하지 못하도록 한다.
// -- Readonly Properties --
class Rectangle {
  public $width;
  public $height;
}

$rect = new Rectangle;
$rect->width = 10;
$rect->height = 20;

// PHP 8.2 이후 버전
class Rectangle {
  public readonly int $width;
  public readonly int $height;
  
  public function __construct(int $w, int $h) {
    $this->width = $w;
    $this->height = $h;
  }
}

$rect = new Rectangle(10, 20);
$rect->width = 30; // Fatal error: Cannot modify readonly property
  • New String Functions
    새로 추가된 문자열 함수에는 str_contains(), str_starts_with(), str_ends_with() 등이 있.
  • Error Handling Improvement
    PHP 8.2에서는 에러 처리에 대한 개선이 이루어졌으며, 새로운 함수 및 예외 처리 방식이 도입되었으며, 개발자가 더욱 쉽게 에러 처리를 할 수 있도록 지원한다.
  • Improved Performance
    PHP 8.2는 성능 향상을 위한 최적화가 이루어졌다. 특히 JIT 컴파일러의 최적화가 개선되어 코드 실행 속도가 빨라졌다.

이러한 새로운 기능과 개선 사항을 통해 PHP 8.2는 보다 효율적이고 생산적인 웹 개발을 가능하게 한다.

반응형