PHP 의 일관성없다는 비난을 줄이기 위한 변경.. (8.5) > 자유게시판

자유게시판

PHP 의 일관성없다는 비난을 줄이기 위한 변경.. (8.5) 정보

PHP 의 일관성없다는 비난을 줄이기 위한 변경.. (8.5)

본문

끊임없이 고쳐나가는 PHP...

 

https://wiki.php.net/rfc/warnings-php-8-5

 

PHP 8.5 소식인데요.


$array[new stdClass()]  <- 이런 코드가있을때

또는

$b = null;

if(isset($b['mb_id']) {

}

 

// 이런 코드는 많죠

  1. 배열에 유효하지 않은 오프셋 접근: TypeError 발생 (예: $array[new stdClass()])

  2. 문자열에 유효하지 않은 오프셋 접근:

    • isset(): false 반환, 아무 경고/오류 없음

    • empty(): true 반환, 아무 경고/오류 없음

    • ?? (null-coalescing operator): TypeError 발생

현재는 저렇게 세가지의 다른 동작인데요.

일관성있게 한다고 바꾼다네요.

 

그래서 이제 배열이 아닌 변수들에 isset 함수를 쓰면 경고 낼것이고 9 부터는 타입오류로 할거라네요.

 

 

PHP 의 컴플렉스는 일관성없다는건데 

그거 고친다고 진통이 크겠네요.

 

다른 개발자가 보면 처음부터 멀쩡한 언어 쓰지 그랬냐라고 할듯...ㅠ

 

3076909877_1752703643.5644.png

php 동작인데 이제 단순화 되겠군요.

추천
2

베스트댓글

@techstar 

 

PHP 엔진 측면에서는

타입 예측의 어려움, 그로인한 JIT 성능하락... 정적분석기의 한계.

그리고 이제는 제네릭 도입을 위해 타입추론도 정리필요성이 있고요

대략 6년전부터 바꾸려고 계속했어요.

사람들은 로그파일에 배열 offset notice 보고 그냥 isset 만 추가해버리니

또 문제생긴거구요

PHP를 버전업 하기 어려운 이유들이 계속 늘어납니다 ㅎㅎ

저는 PHP로 만든 사이트는 버전업 하는걸 포기한지 오래입니다.ㅠㅠ

공격들어오면 그냥 다른 언어나 플랫폼으로 새로 만드는게 훨씬 속편하네요 ㅠㅠ

댓글 5개

@techstar 

 

PHP 엔진 측면에서는

타입 예측의 어려움, 그로인한 JIT 성능하락... 정적분석기의 한계.

그리고 이제는 제네릭 도입을 위해 타입추론도 정리필요성이 있고요

대략 6년전부터 바꾸려고 계속했어요.

사람들은 로그파일에 배열 offset notice 보고 그냥 isset 만 추가해버리니

또 문제생긴거구요

PHP를 버전업 하기 어려운 이유들이 계속 늘어납니다 ㅎㅎ

저는 PHP로 만든 사이트는 버전업 하는걸 포기한지 오래입니다.ㅠㅠ

공격들어오면 그냥 다른 언어나 플랫폼으로 새로 만드는게 훨씬 속편하네요 ㅠㅠ

 

프레임워크써서 계속 따라가는 곳도 있지만

아무튼 그래요.

 

그런저런 이유로 점점 사라지겠죠

이제와 처음부터 제대로 만들지는 않으니까요

전체 199,631 |RSS
자유게시판 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT