Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

ประเภทเทียมแบบผสมใน PHP 8


ประเภทผสมใน PHP 8 เป็นประเภทยูเนี่ยนในตัวใหม่ ชนิดผสมจะเท่ากับ อาร์เรย์|bool|callable|int|float . การผสมแบบไม่เหมือนกับการละเว้นแบบไปเลย

นั่นหมายความว่าโปรแกรมเมอร์เพิ่งลืมเขียนมัน

บางครั้งโปรแกรมเมอร์ชอบที่จะละเว้นบางประเภทเพื่อให้เข้ากันได้กับเวอร์ชันที่เก่ากว่า

ชนิดผสมใน PHP 8 สามารถใช้คุณสมบัติ/ผลตอบแทน/พารามิเตอร์ประเภทใดก็ได้ เราสามารถพูดได้ว่ามันรวมถึงค่า null, callable, ทรัพยากร, คลาสอ็อบเจกต์ทั้งหมด หรือประเภทสเกลาร์ทั้งหมดใน PHP แบบผสมจะเทียบเท่ากับแบบยูเนี่ยน

int|float|bool|string|null|array|object|callable|resource

ตัวอย่าง:ชนิดผสมใน PHP 8

<?php
   class Student{
      public mixed $studentProperty;
      public function emp(mixed $emp): mixed {}
   }
?>
  • ใน PHP 8 มิกซ์เป็นประเภทเทียม/เสมือน มันแสดงถึงหลายประเภทที่ PHP สามารถจัดการได้ ซึ่งหมายความว่าเราไม่สามารถส่งตัวแปรให้เป็นแบบผสมได้เพราะมันไม่ได้สร้างตรรกะใดๆ

$foo = (mixed) $bar;

หมายเหตุ: ฟังก์ชัน gettype() และ get_debug_type() ไม่สามารถคืนค่าผสมเป็นประเภทของตัวแปรได้เช่นกัน

  • เราไม่สามารถใช้ผสมกับประเภทอื่นได้

function(mixed|FooClass $bar): int|mixed {}

หมายเหตุ: ในรหัสข้างต้น ไม่อนุญาตให้ใช้สหภาพทั้งสองประเภทและจะทำให้เกิดข้อผิดพลาดร้ายแรง

ผลลัพธ์

Fatal error: Type mixed can only be used as a standalone type
in C:\xampp\htdocs\gud.php on line 2

ตัวอย่าง:รหัสโปรแกรม PHP 8 ที่ใช้ประเภทผสม

<?php
   function debug_function(mixed ...$data){
      print_r($data);
   }
   debug_function(10, 'string', []);
?>

ผลลัพธ์

Array
(
   [0] => 10
   [1] => string
   [2] => Array
   (
   )
)