7.2.33 ซึ่งกำจัดข้อผิดพลาดและช่องโหว่ที่สะสมไว้
หลัก
-
เพิ่มพลัง คอมไพเลอร์ JIT ซึ่งการใช้จะช่วยเพิ่มผลผลิต -
สนับสนุน อาร์กิวเมนต์ของฟังก์ชันที่มีชื่อช่วยให้คุณสามารถส่งผ่านค่าไปยังฟังก์ชันที่เกี่ยวข้องกับชื่อได้เช่น คุณสามารถส่งผ่านอาร์กิวเมนต์ในลำดับใดก็ได้และกำหนดอาร์กิวเมนต์เพิ่มเติมได้ ตัวอย่างเช่น "array_fill(start_index: 0, num: 100, value: 50)" - เมื่อเรียกวิธีการ
ได้รับอนุญาต การใช้ตัวดำเนินการ “?” ซึ่งช่วยให้คุณสามารถเริ่มต้นการโทรได้เฉพาะในกรณีที่มีวิธีอยู่ ซึ่งจะช่วยหลีกเลี่ยงการตรวจสอบที่ไม่จำเป็นในการส่งคืนค่า “null” ตัวอย่างเช่น "$dateAsString = $booking->getStartDate()?->asDateTimeString()"; - สนับสนุน
ประเภทสหภาพแรงงาน กำหนดคอลเลกชันตั้งแต่สองประเภทขึ้นไป (เช่น “ฟังก์ชั่นสาธารณะ foo(Foo|Bar $input): int|float;”) - สนับสนุน
คุณลักษณะ (คำอธิบายประกอบ) ที่อนุญาตให้คุณผูกข้อมูลเมตา (เช่นข้อมูลประเภท) เข้ากับคลาสโดยไม่ต้องใช้ไวยากรณ์ Docblock - การสนับสนุนการแสดงออก
การจับคู่ ซึ่งแตกต่างจากสวิตช์ตรงที่สามารถส่งคืนค่า รองรับเงื่อนไขการรวม ใช้การเปรียบเทียบประเภทที่เข้มงวด และไม่จำเป็นต้องมีข้อกำหนด "หยุด"$result = ตรงกัน($อินพุต) {
0 => "สวัสดี",
'1', '2', '3' => “โลก”,
}; -
ไวยากรณ์ที่สั้นลง คำจำกัดความของคลาส ช่วยให้คุณสามารถรวมคำจำกัดความของตัวสร้างและคุณสมบัติได้ - ประเภทการคืนสินค้าใหม่ -
คงที่ . - ประเภทใหม่ -
ผสม ซึ่งสามารถใช้เพื่อกำหนดว่าฟังก์ชันยอมรับพารามิเตอร์ประเภทต่างๆ หรือไม่ - การแสดงออก
โยน เพื่อจัดการกับข้อยกเว้น -
แผนที่อ่อนแอ เพื่อสร้างวัตถุที่สามารถเสียสละได้ในระหว่างการรวบรวมขยะ (เช่น เพื่อจัดเก็บแคชที่ไม่จำเป็น) -
โอกาส ใช้นิพจน์ “::class” สำหรับวัตถุ (คล้ายกับการเรียก get_class()) -
โอกาส คำจำกัดความใน catch block ของข้อยกเว้นที่ไม่ได้ผูกไว้กับตัวแปร -
โอกาส ทิ้งเครื่องหมายจุลภาคไว้หลังองค์ประกอบสุดท้ายในรายการพารามิเตอร์ฟังก์ชัน - อินเทอร์เฟซใหม่
สตริงได้ เพื่อระบุประเภทสตริงหรือข้อมูลใด ๆ ที่สามารถแปลงเป็นสตริงได้ (ซึ่งมีเมธอด __toString()) - ลูกเล่นใหม่
str_มี() ซึ่งเป็นอะนาล็อกแบบง่ายของ strpos สำหรับระบุการเกิดขึ้นของสตริงย่อย เช่นเดียวกับฟังก์ชัน str_starts_with() และ str_ends_with() สำหรับตรวจสอบการจับคู่ที่จุดเริ่มต้นและจุดสิ้นสุดของสตริง - เพิ่มคุณสมบัติแล้ว
fdiv() ซึ่งดำเนินการหารโดยไม่มีข้อผิดพลาดเมื่อหารด้วยศูนย์ -
เปลี่ยน ตรรกะการเข้าร่วมสตริง ตัวอย่างเช่น นิพจน์ 'echo "sum:" $a + $b' ก่อนหน้านี้ถูกตีความว่าเป็น 'echo ("sum: " . $a) + $b' และใน PHP 8 จะถือว่าเป็น 'echo "sum: " ($a + $b)'. -
กระชับขึ้น การตรวจสอบการดำเนินการทางคณิตศาสตร์และบิต เช่น นิพจน์ "[] % [42]" และ "$object + 4" จะส่งผลให้เกิดข้อผิดพลาด -
ดำเนินการแล้ว อัลกอริธึมการเรียงลำดับที่เสถียรซึ่งรักษาลำดับของค่าที่เหมือนกันในการรันที่แตกต่างกัน
ที่มา: opennet.ru