산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 산업기술

PHP 7 릴리스: 주요 특징과 알아야 할 사항

개발자라면 새로운 PHP 7의 기능 완료 베타 버전이 나왔다는 걸 아실 겁니다. 7.0.0 버전에는 많은 멋진 기능과 기능이 포함되어 있습니다. 하지만 안정 버전을 받을 때까지(2015년 11월 예상) 프로덕션 환경에서 사용하지 않는 것을 권장합니다.

최신 베타 버전을 자유롭게 테스트하고 놀아보세요. 테스트 중 발견한 버그는 신고해 주세요. PHP 7.0.0에서 볼 수 있는 모든 변경/업그레이드 사항을 정리했습니다.

16. 이것은 PHP 7입니다 (PHP 6이 아닙니다)

현재 안정 버전은 PHP 5.6입니다. 많은 개발자가 6.0 버전을 기대하지만, PHP 6은 과거 실험적 프로세스로 존재했었으나 프로덕션 단계에 도달하지 못했습니다. 핵심 개발팀은 다음 메이저 릴리스에 PHP 6 이름을 넘기기로 결정했습니다.

15. 64비트 윈도우 지원

현재 PHP 버전은 64비트 정수나 큰 파일 지원을 제공하지 않습니다. PHP 7에서는 일관된 64비트 지원이 도입되어 네이티브 64비트 정수와 큰 파일이 모두 지원됩니다.

14. 폐기된 함수와 확장 제거

PHP 7의 주요 목표 중 하나는 메모리를 확보하여 개선을 가능하게 하는 것이었으므로, 오래된 미지원 서버 API, 확장, 폐기된 기능을 제거하는 것이 필요했습니다.
제거된 모든 항목은 오랫동안 사용되지 않았습니다. 하지만 구버전에서 실행 중인 레거시 애플리케이션이 있다면 PHP 7로 업그레이드 시 코드가 깨질 수 있습니다.

참고: 개발자를 위한 30가지 버그 추적 도구

13. 그룹 Use 선언

이 RFC는 그룹 선언 개념을 도입하여 현재 PHP 네임스페이스 구현을 개선하기 위해 만들어졌습니다. 같은 네임스페이스에서 많은 클래스를 임포트하는 코더들에게 유용합니다. 새로운 문법은 장황함을 없애고 코드를 더 깔끔하게 만들며 타이핑 시간을 크게 절약해 줍니다.

12. 익명 클래스

익명 클래스 개념은 자바, C# 같은 다른 객체지향 언어에서 이미 사용 중입니다. 이름이 없는 클래스로 코딩 속도와 실행 시간을 모두 높여줍니다. 클래스가 실행 중 한 번만 사용되고 문서화할 필요가 없을 때 사용하세요.

11. 통일된 변수 문법

표현식이 평가되는 방식의 많은 모순을 해결합니다. 예를 들어 ($object->closureProperties)()처럼 프로퍼티에 할당된 클로저를 호출할 수 있고, 정적 호출 체이닝도 가능해집니다.

구버전 PHP에서 $obj->$properties['name']은 properties 배열의 name 키에 있는 이름을 가진 프로퍼티에 접근했습니다. 이제는 $properties에 있는 이름의 프로퍼티의 name 키에 접근합니다.

10. 유니코드 코드포인트 이스케이프 문법

새 이스케이프 문자(\u)를 사용해 유니코드 문자 코드 포인트(16진수)를 문자열 안에서 명확히 지정할 수 있습니다. 예를 들어 이모지를 입력할 수 없다면 이스케이프 시퀀스를 대신 사용할 수 있습니다.

9. 예외 처리의 공통 부모 클래스

PHP 코더들에게 치명적 오류와 잡을 수 있는 치명적 오류 처리는 결코 쉬운 일이 아니었습니다. 새로운 엔진 예외로 이러한 오류를 예외로 대체할 수 있습니다.
기존 예외와 엔진 예외를 모두 잡을 수 있게 하려고 PHP 7은 \BaseException이라는 새 공통 부모 클래스를 도입했습니다.

8. 호출 시 클로저 바인딩

Closure::bind()와 Closure->bindTo()는 $this와 호출 범위의 바인딩을 별도로 또는 함께 변경하여 복제 클로저를 생성합니다. PHP 7에서는 Closure->call() 추가로 호출 시 $this와 호출 범위를 같은 객체에 바인딩하는 쉬운 방법이 생겼습니다. 이 메서드는 객체를 첫 번째 인수로 받고, 클로저에 전달할 인수들이 뒤따릅니다.

7. Null 병합 연산자

병합 연산자는 '??'로 표기합니다. 첫 번째 피연산자가 존재하고 NULL이 아니면 그 결과를 반환하고, 그렇지 않으면 두 번째 피연산자를 반환합니다. 즉, 값이 존재하지 않아도 E_NOTICE를 발생시키지 않으므로 완전히 안전하게 사용할 수 있습니다.

6. 결합 비교 연산자

결합 비교 연산자(우주선 연산자라고도 함)는 version_compare()나 strcmp()와 동작이 유사하지만 모든 일반 PHP 값에 사용할 수 있습니다. 루비와 펄에 이미 존재합니다.
왼쪽 피연산자가 작으면 -1, 같으면 0, 크면 1을 반환합니다.

5. 제너레이터 반환 표현식과 제너레이터 위임

제너레이터 반환 표현식을 사용하면 제너레이터가 성공적으로 완료될 때 값을 반환할 수 있습니다. PHP 7에서는 $generator->getReturn()을 호출해 반환값을 가져올 수 있습니다. 제너레이터가 아직 반환하지 않았거나 잡히지 않은 예외를 던졌다면 $generator->getReturn()은 예외를 던집니다. 완료되었지만 반환값이 없으면 NULL을 반환합니다.

제너레이터 위임 기능은 이터레이터, 배열, 다른 제너레이터 등 자체적으로 순회 가능한 다른 이터러블 구조를 반환할 수 있게 합니다. 하부 구조의 순회는 재귀가 아닌 가장 바깥쪽 원래 루프에 의해 수행됩니다.

4. 반환 타입 선언

많은 프로그래머가 함수의 반환 타입을 선언하고 싶어 합니다. 의도치 않은 반환값과 서브타입이 슈퍼타입의 예상 반환 타입을 깨는 것을 방지하는 데 도움이 되며, 특히 인터페이스에서 유용합니다. 또한 PHP 7에는 스칼라 타입을 위한 4가지 새 타입 선언(string, int, float, bool)이 추가되었습니다. 이를 통해 정수, 실수, 문자열, 불리언이 반환되길 기대함을 지정할 수 있습니다.
위 이미지에서 foo 함수는 배열을 반환해야 합니다. 복잡한 예시도 확인해 보세요.

3. 추상 구문 트리

가장 크고 눈에 보이지 않는 변화는 추상 구문 트리의 추가입니다. 컴파일 중 코드의 중간 표현으로, 파서에서 직접 오프코드를 내보내던 기존 방식을 대체합니다. 이를 통해 많은 핵을 제거하고 구현을 더 이해하기 쉽고 유지보수하기 쉽게 만듭니다. 또한 단일 패스 컴파일 과정에서는 불가능했던 문법을 구현할 수 있게 됩니다.

2. 완전히 새로운 젠드 엔진

첫 번째 젠드 엔진은 1999년 PHP 4에 도입되었습니다. PHP를 해석하는 오픈소스 스크립팅 엔진(C로 작성)입니다. 현재 PHP 버전은 젠드 엔진 II를 사용하며, 메모리와 리소스 관리, 확장 가능한 객체 모델, 언어에 상당한 성능 향상을 제공합니다.
PHP 7을 위해 개발된 새로운 젠드 엔진 III는 원래 phpng라는 코드명을 가졌습니다.

1. 성능 향상 + 메모리 절약

PHP 7로 업그레이드하는 가장 큰 이유는 성능입니다. 특히 소규모 호스팅 업체에게 희소식인데, 같은 하드웨어로 더 많은 고객을 호스팅할 수 있게 됩니다. 7버전 성능은 런타임에 컴파일을 허용하는 JIT(저스트인타임) 컴파일러를 특징으로 하는 페이스북 HHVM과 동등한 수준입니다. 내부 데이터 구조 최적화로 상당한 메모리 절약도 이루어졌습니다.

참고: 프로그래머와 개발자를 위한 30가지 놀라운 PHP 라이브러리

젠드가 공개한 그래프를 보면, PHP 5.6에서 워드프레스 요청은 1억 CPU 명령어 아래에서 실행되지만, PHP 7에서는 같은 일을 하는 데 2,500만 명령어만 소요됩니다. 또한 테스트 결과 같은 하드웨어에서 마젠토 트랜잭션을 3배 실행할 수 있고, 드루팔 8은 PHP 7에서 72% 더 빠르게 실행됩니다.

산업기술

  1. 미터 회로용 정밀 보정 저항 제작
  2. 공급망 최적화 소프트웨어: 제조업체를 위한 효율성과 수익성 청사진
  3. 토마스(Thomas), 레이저 ISSE의 미국 산업 시장 강력한 진입 지원
  4. DVIRC, 기술 혁신과 인력 성장 견인할 제조 자문위원회 출범
  5. 포스트 코로나 시대 유통업체의 청사진: 노동력과 운영 최적화
  6. 하이브리드 제조: 적층+절삭 공정 융합으로 첨단 생산 구현
  7. 벤 다이어그램 이해하기: 집합 관계 시각화
  8. 확장 준비되셨나요? 제조 공장 확장을 위한 전문가 가이드
  9. 블루투스 인터페이싱 마스터하기: 아두이노와 블루투스 모듈 연결 실전 가이드
  10. MQTT 브로커와 에지 플랫폼이 Industry 4.0 제조를 주도하는 방식