ฟังก์ชัน arrayval

ในไลบรารีมาตรฐานของ PHP ไม่มีฟังก์ชัน arrayval แต่เราสามารถสร้างฟังก์ชันที่มีการทำงานคล้ายกันขึ้นมาใช้เองได้ ด้านล่างนี้คือตัวอย่างการสร้างฟังก์ชันซึ่งจะแปลงค่าใดๆ ก็ตามให้เป็นอาร์เรย์: ถ้าค่านั้นเป็นอาร์เรย์อยู่แล้ว ก็จะคืนค่ากลับมาโดยไม่เปลี่ยนแปลง สำหรับประเภทข้อมูลอื่นๆ จะสร้างอาร์เรย์ที่มีสมาชิกเพียงหนึ่งตัว

การสร้างฟังก์ชัน

php<?php
  function arrayval($value): array {
    return is_array($value) ? $value : [$value];
  }
?>

ตัวอย่างการใช้งาน

ลองแปลงสตริงให้เป็นอาร์เรย์โดยใช้ฟังก์ชันของเรา:

php<?php
  function arrayval($value): array {
    return is_array($value) ? $value : [$value];
  }
  
  $res = arrayval('abcde');
  print_r($res);
?>

ผลลัพธ์จากการรันโค้ด:

php['abcde']

ตัวอย่างการใช้งาน

ลองแปลงตัวเลข:

php<?php
  function arrayval($value): array {
    return is_array($value) ? $value : [$value];
  }
  
  $res = arrayval(123);
  print_r($res);
?>

ผลลัพธ์จากการรันโค้ด:

php[123]

ตัวอย่างการใช้งาน

ลองทดสอบการทำงานกับอาร์เรย์:

php<?php
  function arrayval($value): array {
    return is_array($value) ? $value : [$value];
  }
  
  $res = arrayval([1, 2, 3]);
  print_r($res);
?>

ผลลัพธ์จากการรันโค้ด:

php[1, 2, 3]

วิธีอื่นๆ

ใน PHP มีวิธีอื่นๆ สำหรับการแปลงค่าเป็นอาร์เรย์:

php<?php
  // การใช้ (array) เพื่อแปลงประเภทข้อมูล
  $array = (array)'string';
  print_r($array); // ['string']
  
  // สำหรับอ็อบเจ็กต์ การแปลงประเภทข้อมูลจะทำงานต่างออกไป
  $obj = new stdClass();
  $obj->prop = 'value';
  $array = (array)$obj;
  print_r($array); // ['prop' => 'value']
?>

ดูเพิ่มเติม

  • ฟังก์ชัน is_array,
    ซึ่งใช้ตรวจสอบว่าตัวแปรนั้นเป็นอาร์เรย์หรือไม่
  • ฟังก์ชัน settype,
    ซึ่งใช้แปลงประเภทข้อมูลของตัวแปร