🐘 PHP : κ°„λ‹¨ν•˜κ²Œ μ•Œμ•„λ³΄λŠ” PHP의 역사

2023-10-24

PHP Logo


🚩 κ°œμš”

PHPλŠ” 1994λ…„λΆ€ν„° κΎΈμ€€ν•œ λ°œμ „μ„ κ±°λ“­ν•˜μ—¬ ν˜„μž¬κΉŒμ§€λ„ μ—…λ°μ΄νŠΈλ˜κ³  μžˆλŠ” ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μž…λ‹ˆλ‹€. λ§Žμ€ κ°œλ°œμžλ“€μ—κ²Œ λ ˆκ±°μ‹œ μ–Έμ–΄λΌλŠ” μ•…λͺ…μœΌλ‘œ 유λͺ…ν•œ 언어인데, κ·ΈλŸΌμ—λ„ κΎΈμ€€ν•œ κ°œμ„ μ΄ 이뀄지고 μžˆλ‹€λŠ” 점이 κ½€ 맀λ ₯μ μ΄μ—ˆμŠ΅λ‹ˆλ‹€. 이번 κΈ°νšŒμ— 28λ…„μ΄λΌλŠ” κΈ΄ μ„Έμ›” λ™μ•ˆ μˆ˜λ§Žμ€ κ°œλ°œμžλ“€μ˜ κΈ°μ—¬λ‘œ λ°œμ „ν•΄μ˜¨ PHP의 역사λ₯Ό μ •λ¦¬ν•΄λ³΄κ³ μž 이 포슀트λ₯Ό μž‘μ„±ν•˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

ν˜„μž¬ PHPλŠ” The PHP Groupμ—μ„œ 개발 및 관리λ₯Ό 맑고 있고, php.netμ—μ„œ λ¬Έμ„œλ₯Ό μ œκ³΅ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ΄κ³³μ—μ„œλŠ” 3.0 μ΄μƒμ˜ λ²„μ „λ§Œ κ΄€λ¦¬ν•˜κΈ° λ•Œλ¬Έμ— 1.0κ³Ό 2.0λŠ” PHP λ°•λ¬Όκ΄€μ—μ„œ ν™•μΈν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€.


πŸ“œ PHP의 역사


PHP 1.0 PHP Tools (1995λ…„ 6μ›” 8일)

PHPλŠ” Rasmus Lerdorfκ°€ 1994λ…„ 개인 μ›ΉνŽ˜μ΄μ§€ 개발(이λ ₯μ„œ λ°©λ¬Έ 좔적)을 μœ„ν•΄ Perl μ–Έμ–΄λ‘œ μž‘μ„±λœ CGI(Common Gateway Interface) λ„κ΅¬λ‘œλΆ€ν„° μ‹œμž‘λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μžμ‹ μ—κ²Œ ν•„μš”ν•œ κΈ°λŠ₯을 κ·Έλ•Œκ·Έλ•Œ λ§Œλ“€μ–΄ μ‚¬μš©ν•˜λ˜ 쀑 μ›Ήμ„œλ²„μ˜ κ³ΌλΆ€ν•˜μ™€ 개발의 λ³΅μž‘μ„±μ„ ν•΄κ²°ν•˜κΈ° μœ„ν•΄ Cμ–Έμ–΄λ‘œ Perl 래퍼λ₯Ό λ§Œλ“€μ—ˆκ³ , 이λ₯Ό μ•Œκ²Œλœ μ£Όλ³€ κ°œλ°œμžλ“€μ˜ 기여와 κΈ°λŠ₯ μš”μ²­μœΌλ‘œ κ³„μ†ν•΄μ„œ κ°œλ°œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.

μ‹œκ°„μ΄ μ§€λ‚˜ λ§Žμ€ κΈ°λŠ₯을 μΆ”κ°€ν•˜κ³  점차 κ°œμ„ ν•΄, λ§ˆμΉ¨λ‚΄ Personal Home Page Tools라 λͺ…λͺ…ν•œ λ°°ν¬νŒμ„ λ§Œλ“€μ—ˆκ³ , μ΅œμ’…μ μœΌλ‘œ 1995λ…„ PHP Tools의 μ†ŒμŠ€λ₯Ό 곡개 ν•΄ 졜초의 PHPκ°€ 릴리즈 λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

이 λ²„μ „μ˜ PHPλŠ” ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄κ°€ μ•„λ‹Œ 동적 μ›Ή νŽ˜μ΄μ§€λ₯Ό μ†μ‰½κ²Œ μž‘μ„±ν•˜κΈ° μœ„ν•΄ 개발된 도ꡬ일 λΏμ΄μ—ˆκ³ , ꡬ체적인 섀계 없이 μš”κ΅¬ κΈ°λŠ₯ κ΅¬ν˜„μ„ μœ„ν•œ λ§Žμ€ μˆ˜μ •μœΌλ‘œ λ§Œλ“€μ–΄μ§„ 탓에 ν•¨μˆ˜μ˜ μ΄λ¦„μ΄λ‚˜ λ§€κ°œλ³€μˆ˜μ˜ μˆœμ„œκ°€ μΌκ΄€λ˜μ§€ μ•Šμ€ 문제λ₯Ό κ°–κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. λΌμŠ€λ¬΄μŠ€λŠ” νšŒκ³ λ‘μ—μ„œ 이에 λŒ€ν•΄ β€œμ €λŠ” ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ₯Ό μž‘μ„±ν•  μ˜λ„κ°€ μ „ν˜€ μ—†μ—ˆμ§€λ§Œ, 이것을 λ©ˆμΆ”λŠ” 방법을 λͺ°λžμŠ΅λ‹ˆλ‹€. […] μ €λŠ” ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ₯Ό μž‘μ„±ν•˜λŠ” 방법을 μ „ν˜€ λͺ¨λ¦…λ‹ˆλ‹€. μ €λŠ” κ·Έμ € κ³„μ†ν•΄μ„œ λ‹€μŒ 논리적 단계λ₯Ό μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€.” 라고 λ§ν–ˆμŠ΅λ‹ˆλ‹€.

  • 회고둝 원문 : β€œI don’t know how to stop it, there was never any intent to write a programming language […] I have absolutely no idea how to write a programming language, I just kept adding the next logical step on the way.”

  • μž‘μ„± 예제

    <!--getenv HTTP_USER_AGENT-->
    <!--ifsubstr $exec_result Mozilla-->
    Hey, you are using Netscape!<p>
    <!--endif-->
    
    <!--sql database select * from table where user='$username'-->
    
    <!--ifless $numentries 1-->
    Sorry, that record does not exist<p>
    <!--endif exit-->
    
    Welcome <!--$user-->!<p>
    You have <!--$index:0--> credits left in your account.<p>
    
    <!--include /text/footer.html-->

PHP 2.0 PHP/FI (1997λ…„ 11μ›” 1일)

Rasmus LerdorfλŠ” PHP Toolsλ₯Ό 배포함과 λ™μ‹œμ— λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ‰½κ²Œ μ‚¬μš©ν•  방법을 μ°Ύκ³  μžˆμ—ˆκ³ , SQL 쿼리λ₯Ό ꡬ문 λΆ„μ„ν•˜κ³  κ·Έ κ²°κ³Όλ₯Ό 톡해 양식과 ν…Œμ΄λΈ”μ„ μ‰½κ²Œ λ§Œλ“€ 수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” μƒˆλ‘œμš΄ CGI 도ꡬλ₯Ό λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€. Form Interpreter라 λͺ…λͺ…λœ 이 λ„κ΅¬λŠ” 이후 PHP와 ν•˜λ‚˜μ˜ ν”„λ‘œκ·Έλž¨μœΌλ‘œ κ²°ν•©λ˜μ–΄ Personal Home Page Construction Kit/Form InterpreterλΌλŠ” μ΄λ¦„μœΌλ‘œ μ™„μ „νžˆ μž¬μž‘μ„± λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

이 버전뢀터 ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ‘œ λ°œμ „ν•œ PHP/FIλŠ” κ°„λ‹¨ν•œ 슀크립트λ₯Ό 직접 HTML νŒŒμΌμ— λ°°μΉ˜ν•  수 μžˆμ–΄, C와 Perl μ–Έμ–΄λ‘œ CGIλ₯Ό μ‚¬μš©ν•΄ λ³΅μž‘ν•˜κ²Œ μ›ΉνŽ˜μ΄μ§€λ₯Ό μž‘μ„±ν•˜λ˜ κΈ°μ‘΄ 방식에 λΉ„ν•΄ 맀우 μ‰¬μš΄ νŽΈμ΄μ˜€μŠ΅λ‹ˆλ‹€. λ˜ν•œ, μˆ˜λ§Žμ€ CGI 도ꡬλ₯Ό μ‚¬μš©ν•  λ•Œμ™€ 달리 μ˜€λ²„ν—€λ“œκ°€ 많이 μ œκ±°λ˜μ–΄ μ›ΉνŽ˜μ΄μ§€μ˜ μ„±λŠ₯이 κ°œμ„ λ˜μ—ˆκ³ , κΈ°μ‘΄ κ°œλ°œμžκ°€ μ‰½κ²Œ 배울 수 μžˆλ„λ‘ μ˜λ„μ μœΌλ‘œ C와 Perl의 ꡬ쑰와 μœ μ‚¬ν•˜κ²Œ μ„€κ³„λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

  • λ³€μˆ˜λͺ…이 $둜 μ‹œμž‘ν•˜λŠ” 것과 λͺ¨λ“  λ°°μ—΄(array)이 μ—°κ΄€ λ°°μ—΄(map)둜 μž‘λ™ν•œλ‹€λŠ” 점, λ¬Έμžμ—΄ 결합을 +κ°€ μ•„λ‹Œ .둜 ν•œλ‹€λŠ” 점 등이 Perl의 영ν–₯을 받은 λŒ€ν‘œμ μΈ λ¬Έλ²•μž…λ‹ˆλ‹€.

PHP 3.0 PHP (1998λ…„ 6μ›” 6일)

Andi Gutmans와 Zeev SuraskiλŠ” PHP/FI의 λΆ€μ‘±ν•œ κΈ°λŠ₯을 μ±„μš°κ³ , 엔진을 κ°œμ„ ν•˜κΈ° μœ„ν•΄ λΌμŠ€λ¬΄μŠ€μ™€ νž˜μ„ 합쳐 ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄ κ°œλ°œμ— ν˜‘λ ₯ν–ˆμŠ΅λ‹ˆλ‹€. 이 μƒˆλ‘œμš΄ λ²„μ „μ˜ 이름은 PHPλΌλŠ” μ•½μ–΄λ₯Ό κ·ΈλŒ€λ‘œ μ‚¬μš©ν•˜λ˜, 개인 μ‚¬μš©μ˜ 의미λ₯Ό μ œκ±°ν•œ PHP:Hypertext Preprocessor의 μž¬κ·€μ  μ•½μ–΄λ‘œ μ •ν•΄μ‘ŒμŠ΅λ‹ˆλ‹€.

PHP 3.0에 이λ₯΄λŸ¬ 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ˜ 지원과 κ°•λ ₯ν•˜κ³  μΌκ΄€ν™”λœ μ–Έμ–΄ ꡬ문으둜 λ”μš± κ°œμ„ λ˜μ—ˆκ³ , 이에 더해 κ°•λ ₯ν•œ ν™•μž₯μ„±μœΌλ‘œ μˆ˜λ§Žμ€ λͺ¨λ“ˆ κ°œλ°œμžλ“€μ˜ μœ μž…μ„ λΆˆλŸ¬μ™”μŠ΅λ‹ˆλ‹€. 이 버전뢀터 μš°λ¦¬κ°€ μ•„λŠ” PHP와 μœ μ‚¬ν•œ λͺ¨μŠ΅μ„ κ°–μΆ”κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.


PHP 4.0 PHP (2000λ…„ 5μ›” 22일)

PHP 3.0이 κ³΅μ‹μ μœΌλ‘œ μΆœμ‹œλœ 직후 λ³΅μž‘ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ„±λŠ₯을 κ°œμ„ ν•˜κ³  PHP μ½”λ“œ 베이슀의 λͺ¨λ“ˆμ„±μ„ κ°œμ„ ν•˜κΈ° μœ„ν•΄ PHP μ½”μ–΄ μž¬μž‘μ„± μž‘μ—…μ΄ μ‹œμž‘λ˜μ—ˆμŠ΅λ‹ˆλ‹€. Andi Gutmans와 Zeev SuraskiλŠ” λ³ΈμΈλ“€μ˜ 이름 Zeev 와 Andi λ‘œλΆ€ν„° λ”°μ˜¨ Zend Engineμ΄λΌλŠ” μ΄λ¦„μ˜ μƒˆλ‘œμš΄ 엔진을 λ§Œλ“€μ–΄ λƒˆκ³ , μ„±λŠ₯κ³Ό ν™•μž₯성을 크게 κ°œμ„ ν•΄ λƒˆμŠ΅λ‹ˆλ‹€.

더 λ§Žμ€ μ›Ή μ„œλ²„, HTTP μ„Έμ…˜, 좜λ ₯ 버퍼링, μ‚¬μš©μž μž…λ ₯을 μ²˜λ¦¬ν•˜λŠ” 보닀 μ•ˆμ „ν•œ 방법 및 λͺ‡ 가지 μƒˆλ‘œμš΄ μ–Έμ–΄ ꡬ쑰에 λŒ€ν•œ 지원과 같은 기타 μ£Όμš” κΈ°λŠ₯이 ν¬ν•¨λœ 4.0 버전은 κΎΈμ€€νžˆ μ—…λ°μ΄νŠΈλ˜μ–΄, CLI(Command Line Interface) 지원, SuperGlobalλ³€μˆ˜ 지원 λ“± κΎΈμ€€ν•œ μ—…λ°μ΄νŠΈλ‘œ 2008λ…„ 8μ›”κΉŒμ§€ μœ μ§€λ³΄μˆ˜ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.


PHP 5.0 PHP (2004λ…„ 7μ›” 13일)

μƒˆλ‘œ μΆœμ‹œλœ Zend Engine 2.0으둜 κ΅¬λ™λ˜λŠ” PHP 5λŠ” 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ— λŒ€ν•œ 더 λ§Žμ€ 지원과 μˆ˜λ§Žμ€ κΈ°λŠ₯의 좔가와 μ„±λŠ₯ κ°œμ„ , 그리고 λ³΄μ•ˆ κ°•ν™”κ°€ μ΄λ£¨μ–΄μ‘ŒμŠ΅λ‹ˆλ‹€.

  • μ£Όμš” 사항: λ„€μž„μŠ€νŽ˜μ΄μŠ€(Namespace), μ½”λ“œ 쑰각(trait), μ‚Όν•­ μ—°μ‚°μž(?:), μ œλ„€λ ˆμ΄ν„°(Generators), ν΄λ‘œμ €( Native closures), 단좕 λ°°μ—΄ ꡬ문([]), μƒμˆ˜(const), κ°€λ³€ 길이 인수, PDO(PHP Data Object), JSON ν•¨μˆ˜, λ‚΄μž₯ 개발 μ„œλ²„, 가비지 μ»¬λ ‰μ…˜(Garbage Collection), Phar(php 묢음파일), SQLite3, …

후속 버전인 PHP6의 개발이 2005λ…„λΆ€ν„° μ‹œμž‘λ˜μ–΄ μœ λ‹ˆμ½”λ“œλ₯Ό 기반으둜 μž‘λ™ν•˜λ„λ‘ μ„€κ³„ν•˜μ˜€λŠ”λ°, μ΄λ•Œ UTF-16λ₯Ό μ°¨κΈ° μœ λ‹ˆμ½”λ“œ μΈμ½”λ”©μœΌλ‘œ 채택해 κ°œλ°œν•˜λŠ” 사이, μ›Ήμ˜ ν‘œμ€€ μœ λ‹ˆμ½”λ“œ 인코딩 방식이 UTF-8둜 κ΅³ν˜€μ§€λ©΄μ„œ κ°œλ°œμžλ“€μ˜ μ°Έμ—¬κ°€ μ €μ‘°ν•΄μ‘ŒκΈ° λ•Œλ¬Έμ— 개발이 μ§€μ²΄λ˜λ‹€ κ²°κ΅­ 2010λ…„ μ·¨μ†Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.

이후 2015λ…„κΉŒμ§€ 10λ…„ λ™μ•ˆ PHP5 버전에 머무λ₯΄κ²Œ λ˜λ©΄μ„œ PHP6에 μΆ”κ°€ν•˜κΈ° μœ„ν•΄ λ…Όμ˜λ˜μ—ˆλ˜ λ§Žμ€ κΈ°λŠ₯이 PHP5 버전에 ν†΅ν•©λ˜μ—ˆμ§€λ§Œ, 10λ…„μ΄λΌλŠ” κΈ°κ°„ λ™μ•ˆ 큰 κ°œμ„ μ΄ μ—†λ˜ 엔진에 μ˜ν•΄ λ‹€λ₯Έ 언어에 λΉ„ν•΄ μ„±λŠ₯ λΆ€λΆ„μ—μ„œ 크게 λ°€λ €λ‚˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

PHP6λΆ€ν„° 지원할 μ˜ˆμ •μ΄μ—ˆλ˜ μœ λ‹ˆμ½”λ“œ κΈ°λŠ₯을 5.4에 λ³‘ν•©ν•˜λ©° UTF-8을 κΈ°λ³Έ μΈμ½”λ”©μœΌλ‘œ 채택해 λ‹€μ‹œ μ‚¬μš©μžλ“€μ„ μœ μ§€ν•˜λ©° 2014λ…„ 8μ›” 28일 PHP 5.6κΉŒμ§€ μΆœμ‹œν–ˆμŠ΅λ‹ˆλ‹€.


PHP 7.0 PHP (2015λ…„ 12μ›” 3일)

PHP6으둜 μΆœμ‹œ μ˜ˆμ •μ΄μ—ˆλ˜ μ°¨κΈ° 버전이 μ§€μ²΄λ˜μ–΄ 10년이 μ§€λ‚œ 탓에 λ‹€μŒ λ²„μ „μ˜ 이름을 μ–΄λ–»κ²Œ 정할지에 λŒ€ν•œ λ…Όμ˜κ°€ ν™œλ°œνžˆ μΌμ–΄λ‚¬μ—ˆμŠ΅λ‹ˆλ‹€. κΈ΄ μ‹œκ°„ λ™μ•ˆ PHP6이 μΆœμ‹œλ˜μ§€ μ•Šμ•˜λ˜ 탓에 PHP6을 λŒ€μƒμœΌλ‘œ κ³„νšλ˜μ—ˆλ˜ λ§Žμ€ κΈ°λŠ₯듀이 5.x 버전에 ν†΅ν•©λ˜μ–΄λ²„λ¦° μƒν™©μ΄μ—ˆμŠ΅λ‹ˆλ‹€. λ¬Έμ œλŠ” μ΄λ ‡κ²Œ μΆ”κ°€λœ κΈ°λŠ₯듀을 PHP6이라고 μ§€μΉ­ν•˜λŠ” λ§Žμ€ μžλ£Œλ“€μ΄ μ‘΄μž¬ν•˜κ²Œ λ˜μ—ˆκΈ° λ•Œλ¬Έμ—, PHP6μ΄λΌλŠ” 버전을 μ‚¬μš©ν•˜λ©΄ 큰 ν˜Όλ™μ„ μ•ΌκΈ°ν•  수 μžˆλ‹€λŠ” μš°λ €κ°€ λ§Žμ•˜μŠ΅λ‹ˆλ‹€.

특히 PHP6은 μ‹€νŒ¨ν•œ λ²„μ „μ΄λΌλŠ” 이미지가 λ„ˆλ¬΄ κ°•ν•˜λ‹€λŠ” μ£Όμž₯이 νž˜μ„ μ–»μ–΄ κ²°κ΅­ νˆ¬ν‘œ κ²°κ³Ό PHP7이 μƒˆλ‘œμš΄ 릴리즈의 μ΄λ¦„μœΌλ‘œ μ±„νƒλ˜μ—ˆμŠ΅λ‹ˆλ‹€.

  • 동적 μ–Έμ–΄μ˜ μ„Έκ³„μ—λŠ” 버전6이 μ €μ£Όλ°›μ•˜λ‹€λŠ” 미신이 μžˆμŠ΅λ‹ˆλ‹€. μΆœμ‹œλ˜μ§€μ•Šμ€ MySQL 6κ³Ό μ‹€νŒ¨ν•œ Perl 6, 그리고 λ‹Ήμ‚¬μžμΈ PHP 6
  • 그리고 사싀 이미 λ§Žμ€ ν”„λ‘œμ νŠΈκ°€ μ—¬λŸ¬ 이유둜 메이저 버전을 κ±΄λ„ˆλ›°μ—ˆκΈ° λ•Œλ¬Έμ— 크게 상관이 μ—†μ–΄ 보이기도 ν–ˆμŠ΅λ‹ˆλ‹€.

PHP7의 κΈ°λ°˜μ€ β€œμ°¨μ„ΈλŒ€ PHP” phpng 라고 뢈렸던 PHP λΈŒλžœμΉ˜μž…λ‹ˆλ‹€. Dmitry Stogov, Xinchen Hui, Nikita Popovκ°€ μ°Έμ—¬ν•œ 이 브랜치의 λͺ©μ μ€ μ™„μ „ν•œ μ–Έμ–΄ ν˜Έν™˜μ„±μ„ μœ μ§€ν•˜λ©΄μ„œ PHP의 μ„±λŠ₯을 μ΅œμ ν™”ν•˜λŠ” κ²ƒμ΄μ—ˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό μœ„ν•΄ Zend 엔진을 λ¦¬νŒ©ν† λ§ν•΄ μ„±λŠ₯은 PHP5.6 λŒ€λΉ„ 2λ°° ν–₯μƒλ˜κ³ , λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰μ€ 80% κ°μ†Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.

였랜 기간에 μŒ“μ—¬μ˜¨ λ ˆκ±°μ‹œ ν”„λ‘œμ νŠΈλ“€μ΄ λ§Žμ€ 탓에 이 버전뢀터λ₯Ό ModernPHP라고 λΆ€λ₯΄κΈ°λ„ ν•©λ‹ˆλ‹€.

  • μ£Όμš” 사항 :
    • ν•¨μˆ˜μ˜ μΈμˆ˜μ™€ λ°˜ν™˜ νƒ€μž…, 클래슀의 ν”„λ‘œνΌν‹° νƒ€μž… λͺ…μ‹œ 지원
    • 치λͺ…적인 문제λ₯Ό μΌμœΌν‚¬ 수 μžˆμ—ˆλ˜ λ‹€μ–‘ν•œ 였λ₯˜ λ§€μ»€λ‹ˆμ¦˜μ„ try-catchκ°€ κ°€λŠ₯ν•œ μ˜ˆμ™Έ(Exception)으둜 λŒ€μ²΄
    • ν™”μ‚΄ν‘œ ν•¨μˆ˜(λžŒλ‹€μ‹), 널 병합 μ—°μ‚°μž(??), μš°μ£Όμ„  μ—°μ‚°μž(<=>), λ¬Έμžμ—΄ 음수 μ˜€ν”„μ…‹, 읡λͺ… 클래슀, λ„€μž„μŠ€νŽ˜μ΄μŠ€ κ·Έλ£Ήν™” λ“± λ‹€μ–‘ν•œ 문법 μΆ”κ°€

PHP 8.0 PHP (2020λ…„ 11μ›” 26일)

PHP7λΆ€ν„° μ€€λΉ„ν•΄ 온 JIT(Just-In-Time) μ»΄νŒŒμΌλŸ¬κ°€ λ„μž…λ˜μ–΄ λ‹€μ‹œ μ„±λŠ₯이 2λ°° μƒμŠΉλ˜μ—ˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ, 읽기 μ „μš© μ ‘κ·Όμž(readonly), μ—΄κ±°ν˜•(Enum) 지원, matchν‘œν˜„μ‹, 널 세이프 μ—°μ‚°μž (?->), Attributes (Java의 Anotation) λ“± λ‹€μ–‘ν•œ κΈ°λŠ₯이 μΆ”κ°€λ˜μ—ˆκ³ , PHP7에 이어 더 λ‹€μ–‘ν•œ 였λ₯˜κ°€ μ˜ˆμ™Έλ‘œ λ³€κ²½λ˜μ—ˆκ³ , assert와 같은 μ˜ˆμ™Έ μ²˜λ¦¬μ™€ κ΄€λ ¨λœ μš”μ†Œλ“€μ΄ κ°œμ„ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.


πŸ–οΈλ§ˆμΉ¨

이 포슀트λ₯Ό μž‘μ„±ν•˜κΈ° μœ„ν•΄ λ§Žμ€ λ¬Έμ„œμ™€ 글듀을 보며 μ΅œλŒ€ν•œ μ •ν™•ν•œ λ‚΄μš©μœΌλ‘œ μž‘μ„±ν•˜λ €κ³  λ…Έλ ₯ν–ˆμ§€λ§Œ, ν˜Ήμ‹œλΌλ„ 잘λͺ»λœ 정보가 μžˆλ‹€λ©΄ λŒ“κΈ€λ‘œ μ§€μ ν•΄μ£Όμ‹œλ©΄ ν™•μΈν•˜λŠ”λŒ€λ‘œ μ •μ •ν•˜λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.

일단 이 ν¬μŠ€νŠΈμ—μ„  μ΄λ ‡κ²Œ 큰 ν‹€μ˜ λ³€ν™”λ§Œ μž‘μ„±ν•˜κ³  마무리 ν•˜λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. λ‹€μŒμ— μ‹œκ°„μ΄ λœλ‹€λ©΄ 각 λ²„μ „λ§ˆλ‹€μ˜ μ„Έμ„Έν•œ 변경사항을 μ •λ¦¬ν•˜λŠ” 포슀트λ₯Ό μž‘μ„±ν•΄λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.

πŸ“Œ μ°Έκ³  λ¬Έν—Œ