Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP 8 get_resource_id() 함수로 리소스 ID를 확인하는 방법

리소스(resource)는 외부 자원에 대한 참조를 담고 있는 특수한 변수 타입입니다. 파일 핸들, 데이터베이스 연결, URL 핸들 등이 대표적인 예이며, 모든 리소스는 시스템 내에서 고유한 ID로 식별됩니다.

기존 방식: int로 캐스팅하여 리소스 ID 얻기

PHP 8 이전 버전에서는 리소스 ID를 확인하려면 해당 리소스를 int 타입으로 직접 캐스팅해야 했습니다. 아래 예제를 살펴보겠습니다.

<?php
$x = fopen('test.txt', 'rb');
$id = (int) $x;
print_r($id);
?>

출력 결과

1

이 방식은 동작은 하지만, 캐스팅 과정에서 의도치 않은 타입 오류가 발생할 여지가 있어 안전하지 않다는 단점이 있었습니다.

PHP 8의 get_resource_id() 함수

PHP 8에서 새롭게 도입된 get_resource_id() 함수는 주어진 리소스의 ID를 반환하며, 항상 int 타입을 보장합니다. 덕분에 별도의 캐스팅 없이도 타입 안전성(type safety)이 유지되어 코드의 신뢰성이 크게 향상됩니다.

<?php
$x = fopen('test.txt', 'rb');
echo get_resource_id($x);
?>

출력 결과

1

정리

기존에는 (int) 캐스팅에 의존해야 했던 리소스 ID 확인 작업을, PHP 8부터는 get_resource_id() 함수 하나로 깔끔하고 안전하게 처리할 수 있습니다. 리소스를 다루는 코드에서 타입 안정성을 높이고 싶다면 이 함수를 적극적으로 활용하는 것이 좋습니다.